N * M 크기의 얼음 틀이 있다.
구멍이 뚫린 부분은 0, 칸막이가 있는 부분은 이다.
00110
00011
11111
00000
일 경우 아이스크림이 3개 생성된다.
DFS!
n, m = map(int, input().split())
graph = []
for i in range (n) :
graph.append(list(map(int, input())))
# DFS
def DFS(x, y) :
stack = []
# 주어진 범위를 벗어나는 경우 즉시 종료
if x <= -1 or x >= n or y <= -1 or y >= m :
return False
# 현재 노드를 아직 방문하지 않았다면
if graph[x][y] == 0 :
# 해당 노드 방문 처리
# 상 하 좌 우 위치도 모두 재귀적으로 호출
dfs(x-1, y)
dfs(x, y-1)
dfs(x+1, y)
dfs(x, y+1)
return True
return False
# 모든 노드에 대하여 음료수 채우기
result = 0
for i in range(n) :
for j in range(m) :
# 현재 위치에서 DFS 수행
if DFS(i, j) == True :
result += 1
print(result)