코딩 테스트
[프로그래머스 Level 0] 옹알이 (1)
y_flm
2025. 4. 5. 21:16
문제:
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다.
조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다.
문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록
solution 함수를 완성해주세요.
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/120956
풀이보기
더보기
function solution(babbling) {
let words = ['aya', 'ye', 'woo', 'ma'];
let count = 0;
for(let i = 0; i < babbling.length; i++) {
let word = babbling[i];
for(let j = 0; j < words.length; j++) {
if(word.includes(words[j])) {
word = word.replace(words[j], ' ');
if(word.trim().length === 0) {
count++;
break;
}
}
}
}
return count;
}
먼저 문제에서 제시된 단어들을 배열로 선언해준다.
먼저 babbling의 첫단어를 word에 넣어주고,
만약 word에 제시된 단어가 포함된다면 replace를 통해 해당 단어를 빈 공간으로 바꿔준다.
여기서 그냥 여백이 아닌 빈 공간을 넣어주는 이유는 word가 wyeoo인 경우,
먼저 ye가 없어지면서 woo라는 단어로 바뀌게 되는데 그렇게 되면 연속된 문자가 아니라 포함되는 문자로 없애게 되므로
문제가 원하는대로 작동하지 않기 때문에 일부러 빈공간을 넣어주는 것이다.
이렇게 단어를 없애주다가 word에 여백을 없애준 후의 길이가 0이라면 조건이 충족하므로 count를 증가시켜준다.
그 후 반복문이 끝나고 count를 반환해주면 정답이다.