티스토리 뷰
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static Queue<int[]> q = new LinkedList<>();
static int row, col, h, nx, ny, nz;
static int[][][] map;
static boolean[][][] v;
static int[] dx = {0, 0, -1, 1, 0, 0}; // 위 아래 상 하 좌 우
static int[] dy = {0, 0, 0, 0, -1, 1};
static int[] dz = {1, -1, 0, 0, 0, 0};
public static void main(String[] args) throws IOException {
st = new StringTokenizer(br.readLine());
col = Integer.parseInt(st.nextToken());
row = Integer.parseInt(st.nextToken());
h = Integer.parseInt(st.nextToken());
map = new int[row][col][h];
v = new boolean[row][col][h];
for (int i = 0; i < h; i++) {
for (int j = 0; j < row; j++) {
st = new StringTokenizer(br.readLine());
for (int k = 0; k < col; k++) {
map[j][k][i] = Integer.parseInt(st.nextToken());
if (map[j][k][i] == 1) {
v[j][k][i] = true;
q.offer(new int[]{j, k, i, 0});
}
}
}
}
int ans = 0;
while (!q.isEmpty()) {
int[] now = q.poll();
int x = now[0];
int y = now[1];
int z = now[2];
int day = now[3];
ans = day;
for (int i = 0; i < 6; i++) {
nx = x + dx[i];
ny = y + dy[i];
nz = z + dz[i];
if (nx < 0 || nx >= row || ny < 0 || ny >= col || nz < 0 || nz >= h) {
continue;
}
if (!v[nx][ny][nz] && map[nx][ny][nz] == 0) {
v[nx][ny][nz] = true;
map[nx][ny][nz] = 1;
q.offer(new int[] {nx, ny, nz, day + 1});
}
}
}
boolean flag = false;
for (int i = 0; i < h; i++) {
for (int j = 0; j < row; j++) {
for (int k = 0; k < col; k++) {
if (map[j][k][i] == 0) {
flag = true;
}
}
}
}
if (flag) {
System.out.println(-1);
} else {
System.out.println(ans);
}
}
}
- 토마토 업그레이드버전
- 거의 비슷한 문제인데 토마토를 익힐때 상하좌우위아래 이렇게 6방향으로 익혀주는게 다르다
'PS > boj' 카테고리의 다른 글
boj)2468 - 안전 영역 (0) | 2020.10.21 |
---|---|
boj)10026 - 적록색약 (0) | 2020.10.21 |
boj)1697 - 숨바꼭질 (0) | 2020.10.17 |
boj)4179 - 불! (0) | 2020.10.17 |
boj)1926 - 그림 (0) | 2020.10.15 |
링크
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 이펙티브자바 아이템59
- 패스트캠퍼스 컴퓨터공학 완주반
- js promise
- 이펙티브자바
- HTTP 완벽가이드
- GCP
- REST API
- 백준
- 모던자바스크립트
- js api
- HTTP 완벽 가이드
- 백기선 스터디
- JS 딥다이브
- Spring Security
- JPA 연관관계 매핑
- 프로그래머스 SQL
- js array
- 김영한 JPA
- 킹수빈닷컴
- 이펙티브자바 아이템60
- java
- ㅇㄷㅇㅈ
- 이펙티브자바 스터디
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 드림코딩
- http
- 프로그래머스
- 김영한 http
- BOJ
- dreamcoding
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
글 보관함