🙌문제설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 `babbling`이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
☑️나의 풀이
4가지 발음을 조합한다
연속은 불가능하다 - repeat(2) 로 2번 이상 반복 횟수를 끊는다.
만들 수 있는 모든 경우의 조합을 찾는것
for 문을 두번 돌면서 파악한다.
function solution(babbling) {
const ans = ['aya','ye','woo','ma'];
let cnt = 0;
for(let i = 0; i < babbling.length; i++){
let babble = babbling[i];
for(let j = 0; j < ans.length; j++){
if(babble.includes(ans[j].repeat(2))) break;
babble = babble.split(ans[j]).join(" ");
}
if(babble.split(" ").join("").length === 0){
cnt += 1;
}
}
return cnt;
}
join 시에 공백을 주어서 구분하면, ans 와 매칭하다가 보지 않는다.
문자열이 ans 와 문자열이 매칭되는경우 > ans 의 발음으로만 구성되어있는 경우 +1을 계산한다
☑️배운 점
로직 설계는 이해되는데, 추후의 가공 및 규칙 적용하는걸 생각하는게 어렵다.
정규식으로 쉽게 풀이한 것을 보고,, 문자열 재참조하는법을 배웠다..!!