문제 : boj4659
풀이가 딱히 필요없다. 주어진 대로 구현할 수 있는 구현력(?)만 있으면 된다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
private int type(char c) {
switch (c) {
case'a': case'e': case'i': case'o': case'u' : return 1;
default: return -1;
}
}
private boolean checkIt(String s) {
for (int i = 0; i < s.length(); i++) {
if (type(s.charAt(i)) == 1) break;
if (i == s.length()-1) return false;
}
int chk = 0;
for (int i = 0; i < s.length(); i++) {
int type = type(s.charAt(i));
if (type > 0 && chk > 0) chk++;
else if (type < 0 && chk < 0) chk--;
else chk = type;
if (Math.abs(chk) == 3) return false;
}
for (int i = 1; i < s.length(); i++) {
if (s.charAt(i-1) == s.charAt(i) && s.charAt(i) != 'e' && s.charAt(i) != 'o') return false;
}
return true;
}
private void solution() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
String s = br.readLine();
if (s.equals("end")) break;
sb.append(String.format(checkIt(s)?"<%s> is acceptable.\n":"<%s> is not acceptable.\n", s));
}
System.out.println(sb);
}
public static void main(String[] args) throws Exception {
new Main().solution();
}
}
'PS > BOJ' 카테고리의 다른 글
백준 9612 자바 - Maximum Word Frequency (boj 9612 java) (0) | 2022.04.09 |
---|---|
백준 10090 자바 - Counting Inversions (boj 10090 java) (0) | 2022.04.08 |
백준 2041 자바 - 숫자채우기 (boj 2041 java) (0) | 2022.04.07 |
백준 2163 파이썬 - 초콜릿 자르기 (boj 2163 python) (0) | 2022.04.06 |
백준 9613 자바 - GCD 합 (boj 9613 java) (0) | 2022.04.06 |
댓글