[Programmers Lv.0 | JS] 옹알이(1)

Bori·2023년 2월 15일
1

Algorithm

목록 보기
1/26
post-thumbnail

프로그래머스 옹알이(1) 문제 링크

나의 풀이

function solution(babbling) {
    const canBabbling = [ "aya", "ye", "woo", "ma"];
    let answer = 0;
    
    for(let babble of babbling) {
        for(const canBabble of canBabbling) {
            if(babble.trim().length < 2 ) break;
            babble = babble.replace(canBabble, ' '); // ①
        }
        if(babble.trim().length === 0) answer++;
    }
    return answer;
}

설명 ①

  • 처음에는 대체 문자열을 공백을 없애는 것으로('') 지정했다가 테스트를 통과하지 못해 애를 먹었다.
  • 공백없다면 "wyeoo" 문자열의 경우, 조카가 발음할 수 없는 단어임에도 불구하고 for ...of문을 돌면서 "wyeoo" ⇒ "woo" ⇒ "" 로 바뀌면서 발음 가능한 단어가 된다.
    • 공백 또는 구분되는 문자를 넣어 위와 같은 케이스를 처리하고, 이후 불필요해진 공백, 구분되는 문자를 없앤 후 발음할 수 있는 단어의 개수를 카운팅 한다.

신경 쓴 부분

  • for ...of를 사용하여 for문을 사용하는 것보다 가독성이 좋아지도록 하였다.
    • 개인적으로 i, j 등을 사용하면 코드 읽는 것을 굉장히 힘들어 합니다.
  • for ...of문에 constlet을 적절히 사용하였다.
  • break를 이용하여 불필요한 반복을 줄였다.

0개의 댓글