[프로그래머스] 옹알이 (2) (JS)

hhkim·2023년 7월 11일
0

Algorithm - JavaScript

목록 보기
62/188
post-thumbnail

풀이 과정

  1. 주어진 문자열 배열의 각 문자열에 대해 반복하면서 누적 세기: reduce()
  2. 발음할 수 있는 문자열이 연속으로 반복되는 게 포함되면 제외: includes(), repeat()
  3. 발음할 수 있는 문자열을 공백으로 치환: replaceAll()
  4. 모든 발음할 수 있는 문자열에 대해 3 과정을 마친 후 공백을 빈 문자열로 치환: replaceAll()
  5. 남은 문자열이 없으면 발음할 수 있는 단어

코드

function solution(babbling) {
  const ables = ['aya', 'ye', 'woo', 'ma'];
  return babbling.reduce((result, e) => {
    for (let i = 0; i < ables.length; ++i) {
      if (e.includes(ables[i].repeat(2))) return result;
    }

    for (let i = 0; i < ables.length; ++i) {
      e = e.replaceAll(ables[i], ' ');
    }
    if (e.replaceAll(' ', '')) return result;
    return result + 1;
  }, 0);
}

🤔

발음할 수 있어도 반복이 되면 세면 안 된다는 예외를 염두해두어야 했다.
통과를 하고도 코드가 마음에 들지 않아 고치느라 시간이 오래 걸린 문제쓰...

0개의 댓글