๐ ๋ฌธ์
1802๋ฒ: ์ข ์ด ์ ๊ธฐ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. T๋ 1000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ T๊ฐ์ ์ค์ ๊ฐ๊ฐ์ ์ข ์ด๊ฐ ์ด๋ป๊ฒ ์ ํ์๋์ง๊ฐ ์ฃผ์ด์ง๋ค. ์ข ์ด์ ์ ๋ณด๋ ๋ฌธ์์ด๋ก ์ฃผ์ด์ง๋ฉฐ, 1
www.acmicpc.net
๐ ์์ด๋์ด
์ข ์ด์ ๋ฐ์ ์ ๋ ๊ฒฝ์ฐ A | B ์ ๊ฐ๋ค๋ฉด A์ B๋ ์ ๋๊ธฐ์ค์ผ๋ก ๋์นญ์ ์ด๋ผ๋ ํน์ง์ด ์๋ค.
ํด๋น ํน์ง์ ์ด์ฉํ์ฌ ์ค๊ฐ์ ์ ๊ธฐ์ค์ผ๋ก A์ B๊ฐ ๋์นญ์ธ์ง ํ์ธํ๊ณ A์ B์ข ์ด๋ ์ข ์ด์ ์ ๋ฐ์ ๊ธฐ์ค์ผ๋ก ๋์นญ์ ์ธ์ง ๊ณ์ํด์ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ค.
์์ ์ ๋ ฅ
3
0
000
1000110
์์ ์ถ๋ ฅ
YES
NO
YES
๐ ํ์ด
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
new Main().solution();
}
public void solution() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int tests = Integer.parseInt(br.readLine());
while (tests-- > 0) {
if (foldable(br.readLine())) System.out.println("YES");
else System.out.println("NO");
}
}
private boolean foldable(String paper) {
if (paper.length() > 1) {
int half = paper.length() / 2;
//์ผ์ชฝ ์ข
์ด์ ์ค๋ฅธ์ชฝ ์ข
์ด๊ฐ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ธ์ง ํ์ธํ๋ค.
if (!foldable(paper.substring(0, half))) return false; //์ผ์ชฝ
if (!foldable(paper.substring(half + 1))) return false; //์ค๋ฅธ์ชฝ
//์ ํ๋ ์์ ๋ถ๋ถ๋ค์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ผ๋ฉด ํ์ฌ ํ์ด์ง์์ ์๋ก ๋ฐ๋ ๋ฐฉํฅ์ด ๋๋์ง ํ์ธํ๋ค.
for (int i = 1; i < half + 1; i++) {
if (paper.charAt(half - i) == paper.charAt(half + i)) {
return false; //๋์ด ๊ฐ์ผ๋ฉด ์๋๋ค. (์๋ก ๋ฐ๋ ๋ฐฉํฅ์ด์ฌ์ผ ํ๋ค)
}
}
}
//๋ฐ์ผ๋ก ์ ์ ๊ฒฝ์ฐ์ด๋ฏ๋ก 1ํ์ด์ง์ธ ๊ฒฝ์ฐ ํ์ธํ์ง ์์๋ ๋๋ค.
return true;
}
}
'๋ฐฑ์ค(boj)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [JAVA]1374 ๊ฐ์์ค (0) | 2023.07.16 |
|---|---|
| [JAVA]3109 ๋นต์ง (0) | 2023.07.12 |
| [JAVA]17829 222 ํ๋ง - ๋ถํ ์ ๋ณต (0) | 2023.07.12 |
| [JAVA]2798 ๋ธ๋์ญ ์์ ํ์(์กฐํฉ) (0) | 2023.07.04 |
| [JAVA]1527 ๊ธ๋ฏผ์์ ๊ฐ์ (์์ ํ์) (0) | 2023.07.04 |