내 풀이는 이렇고
function solution(s) {
var answer = 0;
const number = {'zero': 0, 'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5, 'six': 6, 'seven': 7, 'eight': 8, 'nine': 9};
for (const [key, value] of Object.entries(number)) {
// s = s.replaceAll(key, value);
var re = new RegExp(key, 'g');
s = s.replace(re,value);
}
return Number(s);
}
다른 사람의 풀이 중 잘 풀었다고 생각되는 코드는 아래와 같다.
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]);
console.log(`arr: ${arr}`)
answer = arr.join(i);
console.log(`answer: ${answer}`)
}
return Number(answer);
}
영어와 숫자를 Object로 미리 선언해두고 for를 돌면서 치환을 해줬다. replace를 사용하니 하나만 바뀌고 replaceAll이 mdn에 있는데 작동을 안 해서 정규식을 사용해서 해결했다. 다른 사람의 코드를 첨부한 이유는 split
과 join
을 잘 사용했고 console
을 통해 어떻게 동작하는지 확인하면 좋을 거 같았다. JS 내장 메소드도 잘 쓸 수 있고 많이 연습해야겠다.