1개이상 50개 이하로 이루어진 숫자들이 적힌 카드가 있는데,
그 카드에 적힌 숫자중 일부가 숫자가 아닌 해당 숫자를 뜻하는 영단어로 이루어져있다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이 문자열을 토대로 다시 원래 숫자로 바꿀 수 있는 코드를 작성해야 한다.
정규표현식을 사용하여 문자를 숫자로 변경한다.
function solution(s) {
var answer = 0;
s = s.replace(/one/g,'1');
s = s.replace(/two/g,'2');
s = s.replace(/three/g,'3');
s = s.replace(/four/g,'4');
s = s.replace(/five/g,'5');
s = s.replace(/six/g,'6');
s = s.replace(/seven/g,'7');
s = s.replace(/eight/g,'8');
s = s.replace(/nine/g,'9');
s = s.replace(/zero/g,'0');
s = Number(s);
return s;
}
정규표현식을 사용하면 꽤 간단하게 풀 수 있는 문제다.
주어진 문자열 s 를 replace를 이용해 문자열 one 을 찾는다면 그 문자열을 '1'로 치환해 준다.
라는 코드를 작성하면 되는데, 이 부분만 이해가 간다면 나머지 아래의 부분도 모두 이해가 될것이다.
그리고 최종적으로 변경된 문자열을 (전부 숫자가 문자화 된 문자열) Number 로 숫자화 시켜주고
리턴하면 끝난다.