function solution(s) {
let obj = {
'zero' : 0, 'one' : 1, 'two' : 2, 'three' : 3, 'four' : 4,
'five' : 5, 'six' : 6, 'seven' : 7, 'eight' : 8, 'nine' : 9,
}
let cpr = '';
let answer = '';
for (let i=0; i<s.length; i++) {
if (isNaN(s[i])) {
cpr += s[i];
}
if (obj[cpr]>=0) {
answer+=obj[cpr];
cpr='';
}
if (!isNaN(s[i])) {
answer +=s[i];
}
}
return parseInt(answer);
}
console.log(solution("one4zeroeight"));
해당 문자열로 split
split(x)면 x를 기준으로 나누늑 서이고, join(y)면 y를 기준으로 묶는 것임. 즉, 각 배열 사이에 y가 들어간다.
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
정규식 풀이
function solution(s) {
s = s.replace(/zero/gi, 0)
.replace(/one/gi, 1)
.replace(/two/gi, 2)
.replace(/three/gi, 3)
.replace(/four/gi, 4)
.replace(/five/gi, 5)
.replace(/six/gi, 6)
.replace(/seven/gi, 7)
.replace(/eight/gi, 8)
.replace(/nine/gi, 9)
return parseInt(s);
}