Lv1. 숫자 문자열과 영단어
Javascript
Lv1
Success
문제
- 일부 자릿수를 영단어로 바꾼 카드를 건네주면 원래 숫자를 찾는 게임
- 일부 자릿수를 영단어로 바꾸는 예시 1478 → “one4seveneight”
- 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어질 때, s가 의미하는 원래 숫자를 return한다.
- s가 “zero” 또는 “0”으로 시작하는 경우는 주어지지 않는다.
접근 방법
- 영어 배열을 돌며 해당 영어를 숫자(인덱스)로 replace한다.
- 여기서 “oneone” 같은 문자열이 주어질 경우, “one” 전부를 replace해줘야 하므로 정규식을 이용하여
g
옵션을 준다.
주의 사항
- 정규식을 사용하면 편하게 풀 수 있다. 정규식 참고
- 정규식에 변수와 옵션을 사용하는 방법을 알아야 한다. RegExp 객체를 생성해야 변수를 쓸 수 있다. 옵션은 두번째 매개변수로 전달한다.
전체 코드
1
2
3
4
5
6
7
8
9
10
function solution(s) {
let eng = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
for (let i = 0; i < eng.length; i++) {
const regex = new RegExp(`${eng[i]}`, "g");
s = s.replace(regex, i);
}
return parseInt(s);
}