๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4676)
< Haiku Review >
๋ฌธ์ ํ์ด
๋ชจ์์ ๊ฐ์๋ฅผ ๊ตฌํด ๊ฐ ์ค์ ์ฌ๋ฐ๋ฅธ ์์ ์๊ฐ ํฌํจ๋์ด ์๋์ง ํ์ธํ๋ค.
์ด๋, ์ฐ์๋ ๋ชจ์์ ํ๋์ ์์ ๋ก ๊ฐ์ฃผํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class _4676_ { // Haiku Review
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String str = "";
int syllable[] = { 5, 7, 5 };
char vowel[] = { 'a', 'e', 'i', 'o', 'u', 'y' };
while (!(str = bf.readLine()).equals("e/o/i")) {
String[] arr = str.split("/");
boolean wrong = false;
for (int i = 0; i < 3; i++) {
int cnt = 0;
boolean flag = false;
for (int j = 0; j < arr[i].length(); j++) {
boolean check = false;
for (int k = 0; k < 6; k++) {
if (arr[i].charAt(j) == vowel[k]) {
check = true;
break;
}
}
if (!flag && check) {
flag = true;
cnt += 1;
} else if (flag && !check) {
flag = false;
}
}
if (syllable[i] != cnt) {
wrong = true;
bw.write((i + 1) + "\n");
break;
}
}
if (!wrong) {
bw.write("Y\n");
}
}
bw.flush();
}
}
๋ณ์)
str : ์ ๋ ฅ๋ ๋ฌธ์ฅ
syllable : ์์
vowel : ๋ชจ์
wrong : ์ฌ๋ฐ๋ฅธ ์์ ์๊ฐ ํฌํจ๋์ด ์๋์ง ์ฌ๋ถ
cnt : ์์ ์
flag : ์ฐ์๋ ๋ชจ์ ํ๋ณ
check : ๋ชจ์ ํ๋ณ
"e/o/i"๊ฐ ์ ๋ ฅ๋๊ธฐ ์ ๊น์ง ๋ฌธ์ฅ์ ๊ณ์ ์ ๋ ฅ๋ฐ์ ๋ค์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1) ๋ฌธ์ฅ์ "/"๊ธฐ์ค split
2) ํ ์ค์ฉ ํ์ํ๋ฉฐ ๋ชจ์์ธ์ง ํ๋ณ ํ ๋ชจ์ ๊ฐ์ ํ๋ณ. ์ด๋, ์ฐ์๋ ๋ชจ์์ธ์ง ํ์ธํ์ฌ ์ฐ์๋ ๋ชจ์์ ํ๋๋ก ๊ฐ์ฃผํจ
3) ์ฌ๋ฐ๋ฅธ ์์ ์๋ผ๋ฉด Y๋ฅผ ์ถ๋ ฅํ๊ณ , ์ฌ๋ฐ๋ฅธ ์์ ์๊ฐ ์๋๋ผ๋ฉด ์๋ชป๋ ๋ฌธ์ฅ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 5741_Soccer League (0) | 2025.10.31 |
|---|---|
| [Baekjoon] 9794_Another Word Sorting (0) | 2025.10.30 |
| [Baekjoon] 5747_Odd or Even (0) | 2025.10.27 |
| [Baekjoon] 5599_ใซใผใใฎไธฆใณๆฟใ (0) | 2025.10.16 |
| [Baekjoon] 5591_ๆๅคงใฎๅ (0) | 2025.10.13 |