https://programmers.co.kr/learn/courses/30/lessons/81301
정규표현식 사용해서 풀었다. 아주 직관적으로 푼 풀이👩🏻💻
function solution(s) {
let answer = s
.replace(/zero/g, 0)
.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);
answer=Number(answer);
return answer;
}
배열을 통해서 풀 수 있다.
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);
}
이 코드는 split, join의 원리를 파악하면 쉽다. split, join이 무엇을 기준으로 쪼개지고 합해지는지를 잘 생각하자! 이해안되면 console창에 쳐보기!
let answer="one3four8";
let arr = answer.split("one"); //["", "3four8"]
console.log(arr.join(1)); //13four8
function solution(s) {
const number=['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
for(let i=0; i<number.length; i++){
let regexAll=new RegExp(number[i], 'g');
if(s.includes(number[i])) s=s.replace(regexAll, i);
}
return Number(s);
}
여기서 처음에는 s.replace(/number[i]/g, i)를 했는데 전혀 제대로 동작하지 않았다. replace에 변수를 넣기 위해서는 RegExp 객체를 사용해야한다! 여기를 참고하자.
10/25