• 문제 링크
https://www.acmicpc.net/problem/4659
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;
public class Main {
static Pattern ptn = Pattern.compile("[aeiou]");
static Set<Character> set = new HashSet<>(Arrays.asList('a', 'e', 'i', 'o', 'u'));
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
String s;
while (!(s = br.readLine()).equals("end"))
sb.append("<").append(s).append("> is ").append(isVerified(s) ? "" : "not ").append("acceptable.\n");
bw.write(sb.toString());
bw.flush();
}
private static boolean isVerified(String s) {
if (!ptn.matcher(s).find()) return false;
char a = s.charAt(0), b;
int cnt = 0;
for (int i = 1; i < s.length(); i++, a = b) {
b = s.charAt(i);
if ((set.contains(a) && set.contains(b)) || (!set.contains(a) && !set.contains(b))) cnt++;
else cnt = 0;
if (cnt == 2 || (a == b && a != 'e' && a != 'o')) return false;
}
return true;
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1769 3의 배수 - Implementation / Java (0) | 2024.07.01 |
---|---|
[백준] 11576 Base Conversion - Implementation / Java (0) | 2024.06.30 |
[백준] 2669 직사각형 네개의 합집합의 면적 구하기 - Implementation / Java (0) | 2024.06.28 |
[백준] 2331 반복수열 - Implementation / Java (0) | 2024.06.27 |
[백준] 24936 Trip Odometer - Data Structure / Java (0) | 2024.06.26 |
댓글