반응형
import sys
one = [-1,1,0,0,1,1,-1,-1]
two = [0,0,-1,1,1,-1,1,-1]
def dfs(a, b):
graph[a][b] = -1
for i in range(8):
if 0 <= a+one[i] < y and 0 <= b+two[i] < x:
if graph[a+one[i]][b+two[i]] == 1:
dfs(a+one[i], b+two[i])
return
while 1:
x, y = map(int, sys.stdin.readline().split())
if x == 0 and y == 0:
break
graph = []
count = 0
for _ in range(y):
line = list(map(int, sys.stdin.readline().split()))
graph.append(line)
for t in range(y):
for r in range(x):
if graph[t][r] == 1:
dfs(t, r)
count += 1
print(count)
전에 풀어둔 1010번 유기농 배추 문제와 비슷하여 코드를 조금 그대로 가져와서 풀었다.
Dfs로 풀었다.
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 1697번: 숨바꼭질 파이썬 코드(bfs) (0) | 2021.03.17 |
---|---|
백준 7576번: 토마토 파이썬 코드(bfs) (0) | 2021.03.17 |
백준 1038번: 감소하는 수 파이썬 코드(백트래킹) (3) | 2021.02.16 |
백준 1010번: 다리 놓기 파이썬 코드 (2) | 2021.02.11 |
백준 1012번: 유기농 배추 파이썬 코드(dfs) (0) | 2021.02.11 |