- 문제
2. 내 코드
const matching = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
const solution = (str) => {
let answer = '';
let tmp_number = '';
for (let i of str) {
if (isNaN(i)) {
tmp_number += i;
const matching_idx = matching.indexOf(tmp_number);
if (matching_idx > -1) {
answer += matching_idx;
tmp_number = '';
}
} else {
answer += i;
}
}
return +answer;
};
- 문자열을 isNaN을 통해 숫자인지 문자인지 판별
- 숫자일 경우 그대로 answer에 더하고
- 아닐 경우, 스택처럼 tmp문자열에 계속 더해서 숫자가 될 경우 answer에 더한다.
3. 최고의 답안
다른사람의 풀이를 보는데 진짜 쩌는 것을 보았다.
무려 좋아요 99개를 받은 풀이.
split과 join을 이용해 딱 9번만 반복하면 된다.
최고다,,,, 읽는데 짜릿해 이런 코드를 짜기 위해 노력해야겠다.