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

쿼카쿼카·2022년 9월 20일
0

알고리즘

목록 보기
22/67

문제

코드

function solution(s) {
    const word = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
    // 내가 푼 풀이
    for(let i=0; i<word.length; i++) {
        const reg = new RegExp(word[i], 'g');
        s = s.replace(reg, i.toString())
    }
    // split과 join을 이용한 풀이
    for(let i=0; i< numbers.length; i++) {
        let arr = s.split(numbers[i]);
        s = arr.join(i);
    }
    
    return Number(s);
}

replace에 RegExp로 변수 넣기

  • replace(/ /)에는 변수가 들어갈 수 없다. 따라서 RegExp로 새로운 정규식을 생성해 주고 replace에 넣어준다.
  • new RegExp(변수 혹은 직접 문자열 넣기, 'gi 등 조건 넣기')
  • replace에 / / 없이 바로 (reg, 원하는 문자열)
  • i가 숫자이기 때문에 toString으로 문자열 교체

split과 join을 이용한 풀이

  • split으로 영단어 만나면 분리 후 join에 해당 숫자를 넣어 합치기

참고 사이트

profile
쿼카에요

0개의 댓글