백준

백준 4659 비밀번호 발음하기(Java)

Park DJ 2023. 2. 20. 19:54

https://www.acmicpc.net/problem/4659

 

4659번: 비밀번호 발음하기

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

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 조건을 읽어보고 그대로 구현만 하면 되는 문제입니다.

 


 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    StringBuilder sb = new StringBuilder();

    while(true) {
      String str = sc.next();
      if(str.equals("end")) break;
      if(check(str)) sb.append("<").append(str).append("> is acceptable.").append("\n");
      else sb.append("<").append(str).append("> is not acceptable.").append("\n");
    }

    System.out.println(sb);
  }

  public static boolean check(String str) {
    int co = 0;
    int v = 0;
    boolean vow = false;
    char[] c = str.toCharArray();
    for(int i = 0; i < c.length; i++) {
      if(c[i] == 'a' || c[i] == 'e' || c[i] == 'i' || c[i] == 'o' || c[i] == 'u') {
        vow = true;
        co = 0;
        v++;
        if(v == 3) return false;
      }
      else {
        v = 0;
        co++;
        if(co == 3) return false;
      }
      if(i > 0) {
        if(c[i - 1] != 'e' && c[i - 1] != 'o') {
          if(c[i - 1] == c[i]) return false;
        }
      }
    }
    if(vow == false) return false;
    
    return true;
  }
}