본문으로 바로가기

programmers. 숫자 문자열과 영단어

category Algorithm/문제 2021. 7. 10. 22:43

문제

링크

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

풀이

그냥 읽고 풀면되니까 어려울 것 하나 없다 생각하고

문자열 내장 메서드인 replaceAll를 사용해서 문자열을 치환한 뒤에 Number메서드를 이용하여 정수 형태로 반환하는 코드를 작성했다

ide에서는 잘 동작하는데 프로그래머스에서는 replaceAll을 지원하지 않아 에러를 뱉길래 그것만 고쳐주니 통과했다

코드

    function solution(s) {
        const words = {
            0:'zero',
            1:'one',
            2:'two',
            3:'three',
            4:'four',
            5:'five',
            6:'six',
            7:'seven',
            8:'eight',
            9:'nine'
        }
        for(let i=0; i<=9;i++){
            const regExp = new RegExp(`${words[i]}`,'g');
            s = s.replace(regExp,i.toString());
        }
        return Number(s);
    }

const regExp = new RegExp(${words[i]},'g');

replaceAll 메서드를 사용할 수 없기 때문에 문자열 전체를 탐색하는 g 옵션이 포함된 정규표현식을 만들어주는 코드다

words[i]

반복문 안에 있는 words[i]는 배열 원소에 접근하는 것 처럼 착각하기 쉽지만 객체의 key에 접근하는 것

'Algorithm > 문제' 카테고리의 다른 글

baekjoon. 줄 세우기  (0) 2021.08.17
programmers. 거리두기 확인하기  (0) 2021.07.11
baekjoon. 공유기 설치  (0) 2021.07.07
baekjoon. 수 찾기  (0) 2021.07.06
programmers. 쿼드압축 후 개수 세기  (0) 2021.07.05