코딩테스트/Programmers

[프로그래머스] 옹알이(2)

grove1212 2025. 3. 5. 13:53

 

 

1. 내 풀이

class Solution {
        static String[] list = {"aya", "ye", "woo", "ma"};
    public int solution(String[] babbling) {
        int answer = 0;
        for(String str : babbling) {
            if(isBabble(str)) answer++;
        }
        return answer;
    }
    
    static boolean isBabble(String babble) {
        boolean flag;
        String prevString = "";
        for(int i = 0; i< babble.length(); i++){
            flag = false;
            for(int j = 0; j < 4 ; j++){
                if(i+list[j].length() - 1 < babble.length() && list[j].equals(babble.substring(i,i+list[j].length())) && !prevString.equals(babble.substring(i, i+ list[j].length()))){
                    i += list[j].length() - 1;
                    prevString = list[j];
                    break;
                }
                if(j == 3) flag = true;
            }
            if(flag) return false;
        }
        return true;
    }
}

 

 

2. 다른 분 풀이

class Solution {
    public int solution(String[] babblings) {
        // "aya", "ye", "woo", "ma" 4가지 발음만 가능
        int answer = 0;
        for(int i = 0; i < babblings.length; i++) {
            if(babblings[i].contains("ayaaya") || babblings[i].contains("yeye") || babblings[i].contains("woowoo") || babblings[i].contains("mama")) {
                continue;
            }

            babblings[i] = babblings[i].replace("aya", " ");
            babblings[i] = babblings[i].replace("ye", " ");
            babblings[i] = babblings[i].replace("woo", " ");
            babblings[i] = babblings[i].replace("ma", " ");
            babblings[i] = babblings[i].replace(" ", "");

            if(babblings[i].length()  == 0) answer++;

        }
        return answer;
    }
}

 

[replace와 replaceAll의 차이]

https://developerbbojak.tistory.com/88