본문 바로가기

카테고리 없음

프로그래머스 옹알이(1) 문제와 replace함수-JAVA

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"에 해당하는 문자열로 바꿔준다.