p.149
n,m=map(int, input().split())
graph=[]
for i in range(n):
graph.append(list(map(int, input())))
def dfs(x,y):
# 범위를 벗어났을 때
if x<=-1 or x>=n or y<=-1 or y>=m:
return False
# 처음 방문한 노드일 때
if graph[x][y]==0:
# 해당 노드를 방문처리
graph[x][y]=1
# 그래프의 상하좌우 호출
dfs(x,y-1)
dfs(x,y+1)
dfs(x-1,y)
dfs(x+1,y)
return True
return False
result=0
for i in range(n):
for j in range(m):
if dfs(i,j) == True:
result+=1
print(result)
댓글