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 |