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++을 해주었다.