[백준] 4659 비밀번호 발음하기

문제 링크 : https://www.acmicpc.net/problem/4659

 

4659번: 비밀번호 발음하기

좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp

www.acmicpc.net

package boj;

import java.io.*;
import java.util.*;

public class PasswordPronounce {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        List<Character> vowels = Arrays.asList('a', 'e', 'i', 'o', 'u');
        while (true) {
            st = new StringTokenizer(br.readLine());
            String text = st.nextToken();
            if (text.equals("end")) break;

            int con = 0;
            int vow = 0;
            int continue_vow = 0;
            boolean err = false;
            int N = text.length();

            for (int i = 0; i<N; i++){
                if (i>0 && text.charAt(i)==text.charAt(i-1)){
                        if (text.charAt(i) != 'e' && text.charAt(i) != 'o'){
                            err = true;
                            break;
                    }
                }
                if (vowels.contains(text.charAt(i))) {
                    vow ++;
                    continue_vow ++;
                    con = 0;
                    if (continue_vow==3){
                        err = true;
                        break;
                    }
                }else {
                    con ++;
                    continue_vow = 0;
                    if (con == 3){
                        err = true;
                        break;
                    }
                }
            }
            if (!err && vow>0) {
                System.out.println("<" + text + "> is acceptable.");
            } else {
                System.out.println("<" + text + "> is not acceptable.");
            }
        }
    }
}

해설

구현 문제이기 때문에 별다른 해설은 달지 않겠습니다.

변수를 조건에 맞게 적절히 활용하면 됩니다.