Link Search Menu Expand Document

Lv1. 숫자 문자열과 영단어

문제 링크

Javascript

Lv1

Success

문제

  • 일부 자릿수를 영단어로 바꾼 카드를 건네주면 원래 숫자를 찾는 게임
    • 일부 자릿수를 영단어로 바꾸는 예시 1478 → “one4seveneight”
  • 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어질 때, s가 의미하는 원래 숫자를 return한다.
  • s가 “zero” 또는 “0”으로 시작하는 경우는 주어지지 않는다.

접근 방법

  1. 영어 배열을 돌며 해당 영어를 숫자(인덱스)로 replace한다.
  2. 여기서 “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);
}

참고