문제: https://school.programmers.co.kr/learn/courses/30/lessons/120956
발음할 수 있는 단어들을 기준으로 기존 babbling을 하나씩 돌면서 모두 replace 처리한다.
replace 처리 후 남은 단어가 없을 경우 count++ 한다.
! 문제 발생
→ wyeoo의 경우 ‘ye’가 Replace 처리되면 woo가 남아 또 Replace 처리돼 발음을 할수 없는 단어임에도 발음 할 수 있는 단어로 체크가 된다.
→ replace를 “” 가 아닌 “.”등 별도의 문제로 처리해 이와 같은 경우를 방지한다.
ex) wyeoo → w.oo → replace 불가
class Solution {
public int solution(String[] babbling) {
int len = babbling.length;
String[] word = new String[]{"aya", "ye", "woo", "ma"};
int count = 0;
// 돌면서 모두 replace 처리
for(int i = 0; i < word.length; i++){
for(int j = 0; j < len; j++){
babbling[j] = babbling[j].replace(word[i],".");
}
}
for(String str : babbling){
if(str.replace(".","").equals("")){
count++;
}
}
return count;
}
}
반례를 보니 예상치 못한 순간에도 오류가 있을 수 있다는 생각에 조금 더 꼼꼼하게 풀이 방식을 짜야겠다는 반성을 했다!
참~재밌쥬잉~?