728x90
https://www.acmicpc.net/problem/2468
2468번: 안전 영역
재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는
www.acmicpc.net
물의 높이를 올려가며 해당 높이에 대하여 그래프의 탐색을 진행했다.
한 번 틀렸었는데, 높이가 0일 때도 고려를 해야 한다.
import sys
N = int(sys.stdin.readline())
land = list()
for _ in range(N):
land.append(list(map(int, sys.stdin.readline().split())))
max_result = 0
for height in range(101):
result = 0
visited = [[False for _ in range(N)] for _ in range(N)]
for i in range(N):
for t in range(N):
if visited[i][t] is False and land[i][t] > height:
visited[i][t] = True
need_visit = [[i, t]]
result += 1
while need_visit:
cur_i, cur_t = need_visit.pop()
for next_i, next_t in [[cur_i + 1, cur_t], [cur_i - 1, cur_t], [cur_i, cur_t + 1], [cur_i, cur_t - 1]]:
if 0 <= next_i < N and 0 <= next_t < N and not visited[next_i][next_t] and land[next_i][next_t] > height:
need_visit.append([next_i, next_t])
visited[next_i][next_t] = True
max_result = max(max_result, result)
print(max_result)
'알고리즘 > 그래프' 카테고리의 다른 글
백준 3055 탈출 (Python) (0) | 2024.02.11 |
---|---|
백준 7576 토마토 (Python) (0) | 2024.02.11 |
백준 1012 유기농 배추 (Python) (0) | 2024.02.10 |
백준 4963 섬의 개수 (Python) (0) | 2024.02.10 |
백준 2178 미로 탐색 (Python) (0) | 2024.02.08 |