BOJ/String
[BOJ] 4659번 비밀번호 발음하기
J_Jayce
2021. 5. 24. 18:17
문제
https://www.acmicpc.net/problem/4659
4659번: 비밀번호 발음하기
좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.*;
import java.util.StringTokenizer;
import java.util.Map.*;
public class BOJ_4659 {
static boolean chk_moem_ch(char ch){
if(ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u')
return true;
return false;
}
static boolean chk_moem(String tmp){
for(int i=0;i<tmp.length();i++){
char cmp = tmp.charAt(i);
if(chk_moem_ch(cmp))
return true;
}
return false;
}
static boolean chk_three(String tmp){
for(int i=0;i<tmp.length()-2;i++){
String str = tmp.substring(i,i+3);
boolean chk = true;
int mcnt=0, jcnt=0;
for(int j=0;j<3;j++){
if(chk_moem_ch(str.charAt(j)))
mcnt++;
else
jcnt++;
}
if(mcnt==3 || jcnt==3)
return true;
}
return false;
}
static boolean chk_cons_two(String tmp){
for(int i=0;i<tmp.length()-1;i++){
String str = tmp.substring(i,i+2);
if(str.charAt(0)==str.charAt(1)){
if(!str.equals("ee") && !str.equals("oo"))
return false;
}
}
return true;
}
static boolean chk_password(String tmp){
if(chk_moem(tmp)){
if(!chk_three(tmp)){
if(chk_cons_two(tmp))
return true;
}
}
return false;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
String tmp = "";
while(!(tmp = br.readLine()).equals("end")){
if(chk_password(tmp))
sb.append("<"+tmp+">"+" is acceptable.\n");
else
sb.append("<"+tmp+">"+" is not acceptable.\n");
}
System.out.println(sb);
}
}