From bd092f8dee942fbd6d5d1f74571ba2856fc5841c Mon Sep 17 00:00:00 2001 From: LiiNi-coder <97495437+LiiNi-coder@users.noreply.github.com> Date: Tue, 23 Sep 2025 23:57:50 +0900 Subject: [PATCH] =?UTF-8?q?[20250923]=20BOJ=20/=20G5=20/=20=ED=86=A0?= =?UTF-8?q?=EB=A7=88=ED=86=A0=20/=20=EC=9D=B4=EC=9D=B8=ED=9D=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...J \355\206\240\353\247\210\355\206\240.md" | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 "LiiNi-coder/202509/23 BOJ \355\206\240\353\247\210\355\206\240.md" diff --git "a/LiiNi-coder/202509/23 BOJ \355\206\240\353\247\210\355\206\240.md" "b/LiiNi-coder/202509/23 BOJ \355\206\240\353\247\210\355\206\240.md" new file mode 100644 index 00000000..21d8f978 --- /dev/null +++ "b/LiiNi-coder/202509/23 BOJ \355\206\240\353\247\210\355\206\240.md" @@ -0,0 +1,64 @@ +```java +import java.io.*; +import java.util.*; + +public class Main { + public static void main(String[] args) throws IOException { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + StringTokenizer st = new StringTokenizer(br.readLine()); + int m = Integer.parseInt(st.nextToken()); + int n = Integer.parseInt(st.nextToken()); + int h = Integer.parseInt(st.nextToken()); + int[][][] box = new int[h][n][m]; + Queue q = new ArrayDeque<>(); + + + for (int k = 0; k < h; k++) { + for (int i = 0; i < n; i++) { + st = new StringTokenizer(br.readLine()); + for (int j = 0; j < m; j++) { + box[k][i][j] = Integer.parseInt(st.nextToken()); + if (box[k][i][j] == 1) { + q.add(new int[]{k, i, j}); + } + } + } + } + + int[] dz = {0, 0, 0, 0, 1, -1}; + int[] dx = {1, -1, 0, 0, 0, 0}; + int[] dy = {0, 0, 1, -1, 0, 0}; + int days = -1; + while (!q.isEmpty()) { + int size = q.size(); + for (int s = 0; s < size; s++) { + int[] cur = q.poll(); + int z = cur[0], x = cur[1], y = cur[2]; + for (int d = 0; d < 6; d++) { + int nz = z + dz[d], nx = x + dx[d], ny = y + dy[d]; + if (nz < 0 ||nz >= h|| nx < 0 || nx >= n || ny < 0 || ny >= m) + continue; + if (box[nz][nx][ny] == 0) { + box[nz][nx][ny] = 1; + q.add(new int[]{nz, nx, ny}); + } + } + } + days++; + } + + for (int z = 0; z < h; z++) { + for (int x = 0; x < n; x++) { + for (int y = 0; y < m; y++) { + if (box[z][x][y] == 0) { + System.out.println(-1); + return; + } + } + } + } + System.out.println(days); + } +} + +```