프로그래머스 옹알이 (2) 자바스크립트

버건디·2023년 6월 24일
0

프로그래머스

목록 보기
50/66
post-thumbnail

문제 링크


- 내 풀이

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

  let answer = 0;

  for (let i = 0; i < babbling.length; i++) {
    let str = babbling[i];

    for (let j = 0; j < pros.length; j++) {
      if (str.includes(pros[j].repeat(2))) {
        continue;
      } else {
        str = str.split(pros[j]).join("");
      }
    }

    if (str === "") {
      answer++;
    }
  }

  return answer;
}

이렇게 풀이하니 통과 못하는 테스트케이스가 존재했다.

만약에 babbling 이 "yayae" 라고 한다면, 위의 코드에서는 aya가 먼저 사라지고 ye 가 남기때문에 정상적으로 answer++이 되지만, 사실 answer에 ++되면 안된다.

- 수정 코드

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

  let answer = 0;

  for (let i = 0; i < babbling.length; i++) {
    let str = babbling[i];

    for (let j = 0; j < pros.length; j++) {
      if (str.includes(pros[j].repeat(2))) {
        continue;
      } else {
        str = str.split(pros[j]).join(" ");
      }
    }

    if (str.split(" ").join("") === "") {
      answer++;
    }
  }

  return answer;
}

바로 join("")을 해줄것이 아니라 " " 로 합쳐준후 발음 반복문을 다 돈 후에 ""로 다시 합쳐졌을때 ""이 라면 answer++을 해주었다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글