[프로그래머스, 133499] 옹알이 (2) (java)
Problem Solving/Programmers

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

728x90

https://school.programmers.co.kr/learn/courses/30/lessons/133499

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90

메모리: 84.5 MB, 시간: 0.26 ms

사용 알고리즘: 문자열, 구현

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        
        int pre; // 1: aya, 2: ye, 3: woo, 4: ma
        int idx;
        String s;
        for(int i = 0; i < babbling.length; i++) {
            s = babbling[i];
            pre = 0;
            idx = 0;
            
            while(true) {
                if(pre != 1 && s.length() - idx >= 3 
                   && s.substring(idx, idx + 3).equals("aya")) {
                    idx += 3;
                    pre = 1;
                }
                else if(pre != 2 && s.length() - idx >= 2
                        && s.substring(idx, idx + 2).equals("ye")) {
                    idx += 2;
                    pre = 2;
                }
                else if(pre != 3 && s.length() - idx >= 3
                        && s.substring(idx, idx + 3).equals("woo")) {
                    idx += 3;
                    pre = 3;
                }
                else if(pre != 4 && s.length() - idx >= 2
                        && s.substring(idx, idx + 2).equals("ma")) {
                    idx += 2;
                    pre = 4;
                }
                else break;
                
                if(idx == s.length()) {
                    answer++;
                    break;
                }
            }
        }
        return answer;
    }
}
728x90