네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
function solution(s) {
const numbers = [
/zero/g,
/one/g,
/two/g,
/three/g,
/four/g,
/five/g,
/six/g,
/seven/g,
/eight/g,
/nine/g,
];
for (let i = 0; i < 10; i++) {
s = s.replace(numbers[i], i);
}
return Number(s);
}
정규표현식과 replace 메소드를 이용하는 문제.
g 플래그 안써도 replace 쓰면 문자열에서 해당하는거 다 처리하는줄 알고 안쓰고 삽질하다가 속는셈 치고 넣어봤는데 통과됐다.
그래도 이번엔 30분도 안헤맸어 😇
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges#