https://school.programmers.co.kr/learn/courses/30/lessons/120894
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
numbers result
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067
입출력 예 #1
입출력 예 #2
function solution(numbers) {
return parseInt(numbers.replace(/one/g, 1)
.replace(/two/g, 2)
.replace(/three/g, 3)
.replace(/four/g, 4)
.replace(/five/g, 5)
.replace(/six/g, 6)
.replace(/seven/g, 7)
.replace(/eight/g, 8)
.replace(/nine/g, 9)
.replace(/zero/g, 0))
}
0~9까지 replace 돌려버림.
function solution(numbers) {
const obj = {
zero: 0, one: 1, two: 2, three: 3, four: 4,
five: 5, six: 6, seven: 7, eight: 8, nine: 9
};
const num = numbers.replace(/zero|one|two|three|four|five
|six|seven|eight|nine/g,
(v) => {return obj[v];
});
return Number(num);
}
영어 숫자에 대한 객체를 만들고 replace를 할 때 v를 통해서 객체의 key가 전달되게 했음.
function solution(numbers) {
const number = ["zero","one","two","three",
"four", "five", "six", "seven", "eight", "nine"]
for(let i = 0 ; i<number.length; i++){
numbers = numbers.split(number[i]).join(i)
}
return +numbers
}
number 배열 돌면서 영어 숫자로 배열을 split 한 뒤에 숫자로 join함.