본문 바로가기

ALGORITHM

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

1. 문제 링크

 

4659번: 비밀번호 발음하기

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

www.acmicpc.net

 

2. 문제 및 입출력예제

 

3. 문제 풀이

각 조건을 확인하는 과정을 거치면 된다.

조건문이 여러개가 나와서 정신 딱 차리고 하나씩 하면 된다.

코드를 보면 문제 흐름 그대로 가는 게 보인다.

 

4. 코드

import java.io.BufferedReader;
import java.io.IOException;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new java.io.InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String pw = "";
		while (true) {
			boolean flag1 = false;
			boolean flag3 = true;
			int[] al = new int[26];
			pw = br.readLine();

			if (pw.equals("end")) {
				break;
			}
			sb.append("<" + pw + "> is ");
			int cnt1 = 0;
			int cnt2 = 0;
			for (int i = 0; i < pw.length(); i++) {
				al[(pw.charAt(i) - 97)]++;
				
				//연속 확인
				if (pw.charAt(i)=='a' ||pw.charAt(i)=='e'||pw.charAt(i)=='i'||pw.charAt(i)=='o'||pw.charAt(i)=='u') {
					cnt1++;
					if (cnt1 == 3) {
						sb.append("not ");
						flag3 = false;
						break;
					}
					cnt2 = 0;
				} 
				else {
					cnt2++;
					if (cnt2 == 3) {
						sb.append("not ");
						flag3 = false;
						break;
					}
					cnt1 = 0;
				}
			}
			
			if(flag3) {
				if (al[0] > 0 || al[4] > 0 || al[8] > 0 || al[14] > 0 || al[20] > 0) {
					flag1 = true;
				}
				else {
					sb.append("not ");
					flag1 = false;
				}
			}
			
			if (flag1) {
				int e = 0;
				int o = 0;
				for (int i = 1; i < pw.length(); i++) { 
					if(pw.charAt(i) == pw.charAt(i-1)) {
						if(pw.charAt(i) == 'e') {
							e++;
							if(e == 3) {
								sb.append("not ");
								break;
							}
						}
						else if(pw.charAt(i) == 'o') {
							o++;
							if(o == 3) {
								sb.append("not ");
								break;
							}
						}
						else {
							sb.append("not ");
							break;
						}
					}
					else {
						e = 0;
						o = 0;
					}
					
				}
			} 
			
			sb.append("acceptable.\n");
		}
		System.out.println(sb);
	}
}

 

'ALGORITHM' 카테고리의 다른 글

백준 14889 스타트와 링크 (Java)  (0) 2023.03.14
백준 2559 수열 (Java)  (0) 2023.03.14
백준 15686 치킨 배달 (Java)  (0) 2023.03.13
백준 9372 상근이의 여행 (Java)  (0) 2023.03.12
백준 2789 유학 금지 (Java)  (0) 2023.03.12