본문 바로가기
알고리즘

[프로그래머스] Lv 1. 숫자 문자열과 영단어 - Javascript 풀이

by daami 2025. 1. 9.

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/81301

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이

function solution(s) {
    const numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    
    numbers.forEach((number,index)=> {
       while(s.includes(number)){
           s = s.replace(number, index);
       }
    });
    return Number(s);
}

 

회고

처음에 while문을 생각하지 않고, if 조건문으로 그냥 썼더니 올바르게 동작하지 않았다. 

if 는 조건이 true일 때 한 번만 실행되기 때문이다. 따라서 문자열 s에 숫자 단어가 여러 번 포함되어 있을 경우, 한 번만 치환이 이루어지고 반복적인 치환이 일어나지 않게 된다.