프로그래머스 문제풀이/Level 0

옹알이(1) (자바, Java)

뮤츠 2022. 11. 27. 19:17

레벨0에서 가장 정답률이 낮은 문제. 23%밖에 안되서 궁금하길래 풀어보았다.

자꾸 테스트케이스 7,8에서 에러가 나서, 정답을 찾아봤는데

효율을 포기하고 무식하게 구했던 케이스가 많았다. 그래서 조금 더 생각해보다가

반례를 생각해냈고, 해당 반례에 대한 문제점을 해결하기 위해

blank가 아닌 ?로 replace를 해주어 한번 필터하고, 두번째 replace에서 ?를 blank로 바꿔주었다.

안그러면 한번 필터를 통해 불완전한 단어가 합쳐지면서, 필터가 오동작하여 return값이 이상하게 반환되는 경우가 있었다.

 

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        String[] str = {"aya", "ye", "woo", "ma"};
        for (int i=0; i<babbling.length; i++) {
        	String temp = babbling[i];
        	for (String j : str) {
        		if (temp.contains(j)) {
        			temp = temp.replace(j, "?");
        		}
        	}
        	temp = temp.replace("?", "");
        	if (temp.length()==0) {        		
        		answer++;
        	}
        }
        return answer;
    }
}