머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
1 ≤ babbling의 길이 ≤ 100
1 ≤ babbling[i]의 길이 ≤ 30
문자열은 알파벳 소문자로만 이루어져 있습니다.
babbling : ["aya", "yee", "u", "maa"]
1
발음할 수 있는 단어를 계산하는 방법은 이전 옹알이 (1)에서 풀이한 방법을 기본으로 하여 연속해서 같은 발음을 하는 경우를 제외하여 계산하였다. 옹알이(1) 풀이 보러가기
function solution(babbling) {
var answer = 0;
for(let i=0; i<babbling.length; i++) {
if(babbling[i].replaceAll("aya", " ").replaceAll("ye", " ").replaceAll("woo", " ").replaceAll("ma", " ").trim()==="") {
if(babbling[i].indexOf("ayaaya")===-1 && babbling[i].indexOf("yeye")===-1 && babbling[i].indexOf("woowoo")===-1 && babbling[i].indexOf("mama")===-1) {
answer++;
}
}
}
return answer;
}
옹알이(1)번이 푸는 게 오래걸렸어서 그런지 풀이 방법이 바로 기억이 났다. 연속된 단어까지 해결하고 실행했는데, 몇가지 테스트 케이스에서 오류를 출력했다. 풀이 방식이 잘못된 건 아닐 것 같아 억까하는 케이스를 어떻게 만들 수 있을까 생각해보다가 replace했을 때, 지워지게 되는 case가 생기나?하고 바로 ""을 " "으로 바꿔보니 해결됐다. 이 방법을 혼자 생각해낸 것과 빨리 찾은 것도 뿌듯해서 기록용으로 남기기로 했다.