Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 백준 17779
- Spring
- 백준 16236
- spring security
- Coroutine
- 프로그래머스
- 백준
- 백준 16235
- springboot
- MSA
- 백준 파이썬
- sql 기술면접
- 프로래머스
- Kotlin
- spring oauth
- Spring Boot
- MySQL
- JPA
- spring cloud
- 백준 15685
- re.split
- 웹어플리케이션 서버
- java
- 백준 17626
- java 기술면접
- JVM
- 파이썬
- 백준 19238
- with recursive
- 백준 16719
Archives
- Today
- Total
시작이 반
[백준] 7569번(python 파이썬) 본문
SMALL
7576번 2차원 토마토 문제와 같은 문제이다.
3차원 배열은 [z][x][y]인 것을 기억하자
또한 3차원 배열에서 Max값을 얻기 위해 쉽게 얻는 방법이 있는지 확인할려고 검색을 해본결과 2차원 배열에서 max(map(max, graph)) 이런식으로 하면 나온다고 하여 응용을 해서 max(map(max, max(graph)))를 사용하였는데 틀렸다고 나왔다.
map사용법을 아직 잘모름...
3중포문을 사용하여 Max값을 구함
from collections import deque
import sys
input = sys.stdin.readline
col, row, h = map(int, input().split())
graph = [[list(map(int, input().split())) for _ in range(row)] for _ in range(h)]
visited = [[[False] * col for _ in range(row)] for _ in range(h)]
dx = [-1, 1, 0, 0, 0, 0]
dy = [0, 0, -1, 1, 0, 0]
dz = [0, 0, 0, 0, -1, 1]
def Bfs(queue, graph, visited):
while queue:
cur_z, cur_x, cur_y = queue.popleft()
for i in range(6):
next_z = cur_z + dz[i]
next_x = cur_x + dx[i]
next_y = cur_y + dy[i]
if 0 <= next_z < h and 0 <= next_x < row and 0 <= next_y < col:
if not visited[next_z][next_x][next_y] and graph[next_z][next_x][next_y] == 0:
visited[next_z][next_x][next_y] = True
queue.append((next_z, next_x, next_y))
graph[next_z][next_x][next_y] = graph[cur_z][cur_x][cur_y] + 1
queue = deque()
for i in range(h):
for j in range(row):
for k in range(col):
if graph[i][j][k] == 1:
queue.append((i, j, k))
visited[i][j][k] = True
Bfs(queue, graph, visited)
zero_flag = False
for i in range(h):
for j in range(row):
if 0 in graph[i][j]:
zero_flag = True
break
if not zero_flag:
max_day = 0
for i in range(h):
for j in range(row):
for k in range(col):
max_day = max(max_day, graph[i][j][k])
print(max_day - 1)
else:
print(-1)
LIST
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1697번(python 파이썬) (0) | 2021.01.08 |
---|---|
[백준] 14503번(python 파이썬) (0) | 2021.01.07 |
[백준] 7576번(python 파이썬) (0) | 2021.01.07 |
[백준] 2178번(python 파이썬) (0) | 2021.01.06 |
[백준] 1012번(python 파이썬) (0) | 2021.01.06 |