문제
- 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 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 |