[프로그래머스]코딩테스트 옹알이1 JavaScript

박용희·2023년 7월 29일
0

문제

소스

function solution(babbling) {
    let word = ['aya', 'ye', 'woo', 'ma'];

    let count = 0;
    babbling.forEach(item => {
        word.forEach(w => {
            item = item.replace(w,'1');
        })
        if(item.replace(/1/g, '') === '')
            count += 1;
    })
    return count;
}

포인트

  • 각 단어가 최대 한번씩 등장
  • 포함에 집중해서 includes를 사용하지말고 replace를 사용
  • replace 활용방식에 대해 알 것

후기

처음에는 includes를 사용해서 풀려고 시도했으나, 'yee'에 'ye'가 Ture값이 나오다보니 힌트로 replace 활용을 해서 풀었습니다.

replace로 풀던 도중, ''로 치환할 경우 'wyeoo'가 'ye' 'woo'를 처리할 때 'wyeoo' -> 'woo' -> '' 이렇게 처리가 되다보니 true값이 나오게 됩니다.

그래서 저는 빈문자열로 치환하지않고 data input값이 숫자가 나오지 않기때문에 숫자 1을 넣고 마지막에 .replace(/1/g, '')를 사용하여 item에 있는 '1'을 전부 ''로 바꾸어서 풀었습니다.

0개의 댓글