Skip to content

Commit 239e8df

Browse files
authored
[20250211] BOJ / 골드5 / 토마토 / 설진영
1 parent 3fae48e commit 239e8df

File tree

1 file changed

+76
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)