"aya", "ye", "woo", "ma"의 모든 1에서 4까지의 경우의 수를 구하고 매개변수인 babbling배열의 요소들을 비교하여 카운터를 세려고 했다. 하지만 많은 for문이 중첩으로 들어가 굉장히 비효율적이었으며 만약 위의 4가지가 아닌 더 많은 단어를 배열로 받게되면 그때 마다 코드를 수정해야했기에 머리를 싸매다가 도저히 안풀려서 다른 사람들의 코드를 보기로 했다.
function solution(ㅊ) {
var answer = 0;
var possibleWord=["aya", "ye", "woo", "ma"];
// 매개변수 babbling을 for문으로 돌려 요소를 하나씩 대조
for(var idx1 = 0; idx1 < babbling.length; idx1++) {
// ayaye
for(var idx2 = 0; idx2 < possibleWord.length; idx2++) {
// yemawoo babbling배열의 문자열안에 possibleWord의 문자열이 포함되는지 확인
// ayaye.includes(aya) <- ye woo ma
포함이 되면
if(babbling[idx1].includes(possibleWord[idx2])) {
// babbling배열의 요소안에 해당하는 possibleWord의 문자열 자리에 x를 넣는다.
babbling[idx1] = babbling[idx1].replace(possibleWord[idx2], "x");
// console.log(babbling[i])
}
}
// x로만 이루어진 string 검사 babbling의 배열안에 있는 단어가 아기의 언어조합과 완전히 맞아 떨어진다면
var regex = /^[x]*$/;
// console.log(regex)
if(regex.test(babbling[i])) {
// babbling[i]로만 이루어져 있다면 answer를 올린다.
answer++;
}
}
return answer;
}