티스토리 뷰
function solution(s) {
let answer = 0;
s = s.replace(/zero/gi, 0);
s = s.replace(/one/gi, 1);
s = s.replace(/two/gi, 2);
s = s.replace(/three/gi, 3);
s = s.replace(/four/gi, 4);
s = s.replace(/five/gi, 5);
s = s.replace(/six/gi, 6);
s = s.replace(/seven/gi, 7);
s = s.replace(/eight/gi, 8);
s = s.replace(/nine/gi, 9);
answer = Number(s);
return answer;
}
문자열에 있는 숫자 텍스트들을 숫자로 변환해주는 문제.
정규식을 이용해 replace로 문자열을 변환해주었다.
하지만 replace를 반복적으로 써줘야 하다보니 비효율적이라는 생각이 들어
어떻게든 반복문으로 써보고 싶었으나... 실패
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
프로그래머스에서 본 깔끔한 풀이
numbers 배열의 각 인덱스에 해당하는 텍스트로 split 하고
다시 join으로 연결해서 하나의 문자열로 만들어주고 그걸 숫자로 리턴하는 방식
split() - 문자열을 구분자로 나누어서 배열로 반환.
join() - 배열의 모든 요소를 연결해 하나의 문자열로 만든다.
728x90
'개발 > javascript' 카테고리의 다른 글
[프로그래머스] 저주의 숫자 3 (0) | 2023.03.09 |
---|---|
[프로그래머스] 배열 회전시키기 (0) | 2023.02.19 |
[JS 스터디] 매개변수와 인수 (0) | 2022.11.16 |
[JS 스터디] 랜덤 숫자 생성 - Math.random(); (0) | 2022.11.16 |
[JavaScript] 무한 롤링 배너 (0) | 2022.02.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크