class Solution {
public int solution(String[] babbling) {
int answer = 0;
int count=0;
for(int i=0; i<babbling.length; i++){
babbling[i]=babbling[i].replaceFirst("aya","1");
babbling[i]=babbling[i].replaceFirst("ye","1");
babbling[i]=babbling[i].replaceFirst("woo","1");
babbling[i]=babbling[i].replaceFirst("ma","1");
babbling[i]=babbling[i].replace("1","");
if(babbling[i].equals("")){
count++;
}
}
answer=count;
return answer;
}
}
이 문제는 replaceFirst와 replace를 사용하여서 풀었는데 이떄 주의해야될 점은 처음 풀이떄 babbling[i]=babbling[i].replaceFirst("aya","1");
이렇게가 아니라 babbling[i]=babbling[i].replaceFirst("aya","");
을 하고 if(babbling[i].equals("")){
count++;
}
를 통해서 count를 올려줬는데 문제는 이렇게 한다면 예를 들어 "ayeya" 같은 건 통과하지만 그 역은 원래 카운트 되면 안되는데 카운트 되기 떄문에 풀이를 바꿔주었다.
String.replace("target","replace")는 target에 해당하는 문자열을 전부 "replace"에 해당하는 문자열로 바꿔주지만
String.replaceFirst("target","replace")는 딱 한번만 target에 해당하는 문자열을 "replace"에 해당하는 문자열로 바꿔준다.