Skip to content

Commit 5645e93

Browse files
authored
Merge pull request #42 from AlgorithmWithGod/Seol-JY
[20250205] BOJ / 실버1 / 오목 / 설진영
2 parents 9d49401 + e423a54 commit 5645e93

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

Seol-JY/202502/05 BOJ S1 오목.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
```java
2+
package com.one;
3+
import java.io.BufferedReader;
4+
import java.io.FileInputStream;
5+
import java.io.IOException;
6+
import java.io.InputStreamReader;
7+
import java.util.StringTokenizer;
8+
9+
public class Main {
10+
private static final int[] dx = {-1, 0, 1, 1};
11+
private static final int[] dy = {1, 1, 1, 0};
12+
13+
public static void main(String[] args) throws Exception {
14+
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
15+
int map[][] = new int[20][20];
16+
for (int i = 1; i <= 19; i++) {
17+
StringTokenizer st = new StringTokenizer(br.readLine());
18+
for (int j = 1; j <= 19; j++) {
19+
map[i][j] = Integer.parseInt(st.nextToken());
20+
}
21+
}
22+
23+
for (int i = 1; i <= 19; i++) {
24+
for (int j = 1; j <= 19; j++) {
25+
int target = map[i][j];
26+
27+
for (int k = 0; k < 4; k++) {
28+
int cnt1 = 0;
29+
int cnt2 = 0;
30+
for (int m = 0; m < 5; m++) {
31+
int nx = i + dx[k]*m;
32+
int ny = j + dy[k]*m;
33+
34+
if (canMove(nx, ny)) {
35+
if (map[nx][ny] == 1 && target == 1) {cnt1++;}
36+
if (map[nx][ny] == 2 && target == 2) {cnt2++;}
37+
}
38+
}
39+
40+
if (cnt1 == 5) {
41+
int nx = i - dx[k];
42+
int ny = j - dy[k];
43+
if (canMove(nx, ny) && map[nx][ny] == 1) continue;
44+
nx = i + dx[k]*5;
45+
ny = j + dy[k]*5;
46+
if (canMove(nx, ny) && map[nx][ny] == 1) continue;
47+
System.out.println(1);
48+
System.out.println(i + " " + j);
49+
return;
50+
}
51+
if (cnt2 == 5) {
52+
int nx = i - dx[k];
53+
int ny = j - dy[k];
54+
if (canMove(nx, ny) && map[nx][ny] == 2) continue;
55+
nx = i + dx[k]*5;
56+
ny = j + dy[k]*5;
57+
if (canMove(nx, ny) && map[nx][ny] == 2) continue;
58+
System.out.println(2);
59+
System.out.println(i + " " + j);
60+
return;
61+
}
62+
}
63+
}
64+
}
65+
System.out.println(0);
66+
}
67+
68+
69+
private static boolean canMove(int x, int y) {
70+
if (x < 1 || y < 1 || x > 19 || y > 19) {
71+
return false;
72+
}
73+
return true;
74+
}
75+
}
76+
77+
78+
```

0 commit comments

Comments
 (0)