Skip to content

Commit 3742ee9

Browse files
authored
[20250722] BOJ / G4 / 좋은수열 / 이인희
1 parent dc61f30 commit 3742ee9

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
```java
2+
import java.io.BufferedReader;
3+
import java.io.IOException;
4+
import java.io.InputStreamReader;
5+
6+
public class Main {
7+
private static BufferedReader br;
8+
private static int n;
9+
private static StringBuilder answer;
10+
private static boolean found;
11+
12+
public static void main(String[] args) throws IOException {
13+
br = new BufferedReader(new InputStreamReader(System.in));
14+
n = Integer.parseInt(br.readLine());
15+
answer = new StringBuilder();
16+
found = false;
17+
recur(0, new StringBuilder());
18+
System.out.println(answer);
19+
}
20+
21+
private static void recur(int depth, StringBuilder sb) {
22+
if (found) return;
23+
24+
if (depth == n) {
25+
answer.append(sb);
26+
found = true;
27+
return;
28+
}
29+
30+
for (int i = 1; i <= 3; i++) {
31+
sb.append(i);
32+
if (isGood(sb)) {
33+
recur(depth + 1, sb);
34+
}
35+
sb.deleteCharAt(sb.length() - 1);
36+
}
37+
}
38+
39+
private static boolean isGood(StringBuilder sb) {
40+
int len = sb.length();
41+
for (int size = 1; size <= len / 2; size++) {
42+
String left = sb.substring(len - size * 2, len - size);
43+
String right = sb.substring(len - size, len);
44+
if (left.equals(right)) {
45+
return false;
46+
}
47+
}
48+
return true;
49+
}
50+
}
51+
```

0 commit comments

Comments
 (0)