100/100
15분 소요
function solution(s) {
let dic = ['zero','one','two','three','four','five','six','seven','eight','nine']
let str = ''
let result = ''
s.split('').map((val)=>{
if(dic.indexOf(str)>-1){
result = result.concat(dic.indexOf(str))
str=''
}
if(Number(val) > -1){
result = result.concat(val)
}
else{
str = str.concat(val)
}
})
if(str)
result = result.concat(dic.indexOf(str))
return Number(result)
}
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);
}
결국 무엇을 무엇으로 바꾸는 것이니 replace를 사용하는것이 간단하다
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);
}
제일 신박했다.
numbers를 순회하면서
split의 값으로 분리를 일단하고
join의 값으로 해당 부분들에 값을 넣는 이런식이 가능하다니 생각했다.
split(a) , join(b) 을 통해 replace(/a/g,b)의 느낌으로 처리할 수 있다는 것을 알게되었다.