[프로그래머스 | JavaScript] 숫자 문자열과 영단어

728x90
반응형

(1) 내 풀이

function solution(s) {
    const num = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];

   
    num.forEach((num, i) => {
        s = s.replaceAll(num, i);
    });
    
    return +s;
}

1) num 배열을 반복해서 s에 zero가 들어오면 인덱스 0 -> 0으로 변경

2) 최종 출력은 숫자여서 return 시 형변환 

 

(2) 다른 사람 풀이

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 했던 array를 join으로 묶으면서 해당숫자(i)를 넣어주기

 

 

(3) 다른 사람 풀이

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와 정규식으로 풀기

 

 

끝.

반응형