문제
https://www.acmicpc.net/problem/2468
2468번: 안전 영역
재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는
www.acmicpc.net
코드
import sys
sys.setrecursionlimit(100000)
n = int(input())
graph = [list(map(int, input().split())) for _ in range(n)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def dfs(r, c):
visited[r][c] = 1
for i in range(4):
nx = r + dx[i]
ny = c + dy[i]
if 0 <= nx < n and 0 <= ny < n:
if array[nx][ny] == 1 and visited[nx][ny] == 0:
dfs(nx, ny)
max_h = 0
for i in range(n):
max_h = max(max_h, max(graph[i]))
result = 0
for i in range(0, max_h):
count = 0
visited = [[0] * n for _ in range(n)]
array = [[0] * n for _ in range(n)]
for j in range(n):
for k in range(n):
if graph[j][k] > i:
array[j][k] = 1
for j in range(n):
for k in range(n):
if array[j][k] == 1 and visited[j][k] == 0:
dfs(j, k)
count += 1
result = max(result, count)
print(result)
'문제풀이 > DFS & BFS' 카테고리의 다른 글
[파이썬] [DFS] 백준 2668 숫자고르기 (0) | 2023.02.14 |
---|---|
[파이썬] [BFS] 백준 27211 도넛 행성 (0) | 2023.01.17 |
@[파이썬] [DFS] 백준 1012 유기농 배추 (0) | 2022.12.27 |
@[파이썬] [BFS] 백준 2178 미로 탐색 (0) | 2022.12.26 |
[파이썬] [DFS] 백준 1759 암호 만들기 (0) | 2022.05.27 |