프로그래머스 문제 링크
My Solution / Try
- 객체의 키/밸류를 활용
- !isNan()을 활용해 숫자인지 아닌지 판별
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 result = ''
let str = ''
for(let i = 0; i < s.length; i++){
if(!isNaN(s[i])){
result += s[i]
continue;
}
else {
str += s[i];
if(obj[str]){
result += obj[str]
str = ''
}
}
}
return Number(result)
}
Advanced Solution
- 배열의 index를 활용
- 반복문을 돌며 문자열이 numbers[i]와 일치한다면 numbers[i]를 기준으로 split하여 배열로 만듦
- 그 index값이 곧 숫자이므로 join(i)를 활용해 문자열로 병합
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);
}