프로그래머스 (JS)/Lv. 0
[Programmers / JS] 120956번 - 옹알이
hodo-
2023. 3. 12. 14:24
Problem
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
Solution
function solution(babbling) {
const x = ["aya", "ye", "woo", "ma"];
let result = 0;
for (i of babbling){
for(j of x){
let text = String(i).replace(j, '1');
i = text;
}
let re = i.replaceAll(1, '')
if (re === '') result++;
}
return result;
}
1. babbling 각 요소 i로 하나씩 불러오기
2. x (조카가 가능한 네가지 발음)의 각 요소 j로 하나씩 불러오기
3. replace를 사용하기 위해 문자열로 i 만들어주고 조카가 말한 단어(i)에 j가 포함된다면 1로 바꿔줌
- i는 각각 최대 1번씩만 발음하기 때문에 replaceAll이 아닌 replace로 처음에 발견한 하나만 바꿔주면 됨!
- 처음에 replace(j, '')으로 해줬는데 "wyeoo"의 경우 처음에 "ye"가 공백처리 되면 "woo"가 되므로 이것도 발음할 수 있는 단어의 개수로 되어버린다..그러므로 숫자로 바꿔줌!
4. i에 포함된 모든 숫자 1을 공백으로 처리!
5. 공백이라면 result + 1 ! (발음할 수 있는 조합으로만 되어있다면 1로만 구성되어있으므로 공백이된다)