티스토리 뷰
문제 설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 30
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
입출력 예
babbling result["aya", "yee", "u", "maa"] | 1 |
["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"] | 2 |
접근법
옹알이(1) 문제와 같은 형식이지만 "연속해서 같은 발음을 하는 것을 어려워합니다" 이 문장 때문에 다른 방식으로 접근해야 합니다. 그렇기 때문에 이전과 동일하게 speakingList를 만들고 repeatList를 만들었습니다. 만약 repeatList에 포함된 단어를 입력 받을 경우에 answer의 값을 증가시키지 말아야 합니다. 이는 isNotRepeat 변수를 통해 분기시켰습니다.
풀이
class Solution {
public int solution(String[] babbling) {
String[] speakingList = {"aya", "ye", "woo", "ma"};
String[] repeatList = { "ayaaya", "yeye", "woowoo", "mama" };
int answer = 0;
for(String bab : babbling){
boolean isNotRepeat = true;
for(String repeat : repeatList){
bab = bab.replace(repeat, "x");
}
for(String speak : speakingList){
bab = bab.replace(speak, "z");
}
if(bab.contains("x")) isNotRepeat = false;
if(bab.replaceAll("z", "").equals("")&&isNotRepeat) answer++;
}
return answer;
}
}
감사합니다.