728x90
반응형
https://www.acmicpc.net/problem/4659
문제에서 말하는 조건대로 구현하면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class P4659 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String password;
while (true) {
password = br.readLine();
if (password.equals("end"))
break;
int count_mo = 0;
int count_ja = 0;
char before = '.';
boolean acceptable = true;
if (!password.contains("a") && !password.contains("e") && !password.contains("i") && !password.contains("o")
&& !password.contains("u")) {
// 모음이 없음
acceptable = false;
} else {
for (int i = 0; i < password.length(); i++) {
// 한글자씩 순회
char now = password.charAt(i);
if (now == 'a' || now == 'e' || now == 'i' || now == 'o' || now == 'u') {
// 모음임
count_mo++;
count_ja = 0;
} else {
count_mo = 0;
count_ja++;
}
if (count_mo == 3 || count_ja == 3) {
// 모음또는 자음이 3개 연속임
acceptable = false;
break;
}
if (now == before && now != 'e' && now != 'o') {
// 이전 글자와 같은데 e나 o는 아님
acceptable = false;
break;
}
before = now;
}
}
if (acceptable) {
System.out.println("<" + password + "> is acceptable.");
} else {
System.out.println("<" + password + "> is not acceptable.");
}
}
}
}
모음이나 자음이 3개연속인 것을 판별하는 것은
count_모음, count_자음 변수를 만들어놓고 비밀번호를 한 글자씩 보면서 카운트를 세면 쉽게 판별할 수 있다
728x90
반응형
'코딩 > 백준-자바' 카테고리의 다른 글
[자바] 백준 20125번: 쿠키의 신체 측정 (0) | 2023.02.24 |
---|---|
[자바] 백준 25757번:임스와 함께하는 미니게임 (1) | 2023.02.23 |
[자바] 백준 10431번: 줄세우기 (0) | 2023.02.19 |
[자바] 백준 9655번: 돌 게임 (0) | 2023.02.18 |
[자바] 백준 14501번: 퇴사 (0) | 2023.02.15 |
댓글