[백준] 4963 - 섬의 개수
2024. 6. 26. 17:18ㆍPS/백준
728x90
문제 링크
https://www.acmicpc.net/problem/4963
느낀 점
아주 기본 적인 dfs 구현 문제!
import sys
sys.setrecursionlimit(12345678)
answer = []
while True:
w, h = map(int, sys.stdin.readline().split())
if w == 0 and h == 0:
break
else:
count = 0
maps = []
for _ in range(h):
maps.append(list(sys.stdin.readline().split()))
d = [(-1, 0), (-1, -1), (-1, 1), (0, -1), (0, 1), (1, 0), (1, -1), (1, 1)]
def dfs(i, j):
global count
for di, dj in d:
ui = i + di
uj = j + dj
if ui >= 0 and uj >= 0 and ui < h and uj < w and maps[ui][uj] == '1':
maps[ui][uj] = '0'
dfs(ui, uj)
for i in range(h):
for j in range(w):
if maps[i][j] == '1':
dfs(i, j)
count += 1
answer.append(count)
for _ in answer:
print(_)
'PS > 백준' 카테고리의 다른 글
[백준] 11663 - 선분 위의 점 (0) | 2024.07.04 |
---|---|
[백준] 7795 - 먹을 것인가 먹힐 것인가 (0) | 2024.07.01 |
[백준] 2644 - 촌수계산 (0) | 2024.06.26 |
[백준] 2606 - 바이러스 (0) | 2024.06.26 |
[백준] 1189 - 컴백홈 (0) | 2024.06.26 |