[python 파이썬] 백준 7569번 토마토
2021. 3. 15. 01:34ㆍAlgorithm/BOJ
반응형
7576번 토마토와 비슷한문젠데 z축을 추가해서 풀면된다.
from collections import deque
m, n, h = map(int, input().split())
a = [[list(map(int, input().split())) for i in range(n)] for depth in range(h)]
dx = [-1, 0, 1, 0, 0, 0]
dy = [0, 1, 0, -1, 0, 0]
dz = [0, 0, 0, 0, -1, 1]
def bfs():
while de:
z, x, y = de.popleft()
for i in range(6):
nx = x + dx[i]
ny = y + dy[i]
nz = z + dz[i]
if 0 <= nx < n and 0 <= ny < m and 0 <= nz < h:
if a[nz][nx][ny] == 0:
a[nz][nx][ny] = a[z][x][y] + 1
de.append([nz, nx, ny])
de = deque()
for i in range(h):
for j in range(n):
for k in range(m):
if a[i][j][k] == 1:
de.append([i, j, k])
bfs()
z = 1
result = -1
for i in a:
for j in i:
for k in j:
if k == 0:
z = 0
result = max(result, k)
if z == 0: # 모두 익지 못한 상태
print(-1)
elif result == 1: # 모두 익어있던 상태
print(0)
else:
print(result - 1)
참고
반응형
'Algorithm > BOJ' 카테고리의 다른 글
[python 파이썬] 백준 10814번 나이순 정렬 (0) | 2021.05.04 |
---|---|
[python 파이썬] 백준 2869번 달팽이는 올라가고 싶다 (0) | 2021.04.22 |
[python 파이썬] 백준 7576번 토마토 (0) | 2021.03.15 |
[python 파이썬] 백준 2583번 영역 구하기 (0) | 2021.03.14 |
[python 파이썬] 백준 2644번 촌수계산 (0) | 2021.03.10 |