프로그래머스 JS LV0

LV0 69 영어가 싫어

와라리요 2022. 11. 8. 21:22

문제

- 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

 

제한사항

  • numbers는 소문자로만 구성되어 있습니다.
  • numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
  • 1 ≤ numbers의 길이 ≤ 50
  • "zero"는 numbers의 맨 앞에 올 수 없습니다.

 

입출력 예

numbers result
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067

 

나만의 풀이

  이 문제는 처음오로 객체를 이용해서 풀었다. 우선 1~9를 객체를 이용해 선어 하고 정규표현식을 이용해 글을 처음부터 읽게 하고 raplace를 이용해 key에 동일한 글자가 있을 시 value값을 반환하는 방법으로 풀었다.

function solution(numbers) {
    const nums = {
        zero : 0, one : 1, two : 2, three : 3, four : 4,
        five : 5, six : 6, seven : 7, eight : 8, nine : 9,
    }
    let answer = new RegExp(Object.keys(nums).join('|'), 'g');
    
    return Number(numbers.replace(answer, key => nums[key]));
}

'프로그래머스 JS LV0' 카테고리의 다른 글

LV0 71 캐릭터의 좌표  (0) 2022.11.08
LV0 70 문자열 계산하기  (0) 2022.11.08
LV0 68 소인수분해  (0) 2022.11.08
LV0 67 숨어있는 숫자의 덧셈 (2)  (0) 2022.10.28
LV0 66 외계어 사전  (0) 2022.10.28