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

Seungmin Shin·2021년 9월 10일
1
post-custom-banner

필요조건

1개이상 50개 이하로 이루어진 숫자들이 적힌 카드가 있는데,
그 카드에 적힌 숫자중 일부가 숫자가 아닌 해당 숫자를 뜻하는 영단어로 이루어져있다.

1478 → "one4seveneight"
234567 → "23four5six7"
10203 → "1zerotwozero3"

이 문자열을 토대로 다시 원래 숫자로 바꿀 수 있는 코드를 작성해야 한다.

수도코드

정규표현식을 사용하여 문자를 숫자로 변경한다.

코드작성

function solution(s) {
    var answer = 0;
    s = s.replace(/one/g,'1');
    s = s.replace(/two/g,'2');
    s = s.replace(/three/g,'3');
    s = s.replace(/four/g,'4');
    s = s.replace(/five/g,'5');
    s = s.replace(/six/g,'6');
    s = s.replace(/seven/g,'7');
    s = s.replace(/eight/g,'8');
    s = s.replace(/nine/g,'9');
    s = s.replace(/zero/g,'0');
    s = Number(s);
    return s;
}

코드해석

정규표현식을 사용하면 꽤 간단하게 풀 수 있는 문제다.
주어진 문자열 s 를 replace를 이용해 문자열 one 을 찾는다면 그 문자열을 '1'로 치환해 준다.
라는 코드를 작성하면 되는데, 이 부분만 이해가 간다면 나머지 아래의 부분도 모두 이해가 될것이다.
그리고 최종적으로 변경된 문자열을 (전부 숫자가 문자화 된 문자열) Number 로 숫자화 시켜주고
리턴하면 끝난다.
profile
Frontend Developer
post-custom-banner

0개의 댓글