모든 블럭을 체크하여 0인 경우 상하좌우 네 방향으로 재귀 함수를 돌려 1 값으로 만든다.
이렇게 처리한 후 결과 값을 하나씩 올린다.
단 없는 좌표일 경우와 이미 1인 경우 바로 리턴한다.
input_data = list(map(int, input().split()))
row = input_data[0]
column = input_data[1]
graph = []
result = 0
for i in range(row):
graph.append(list(map(int, input())))
def dfs(x, y):
if x < 0 or x > row - 1 or y < 0 or y > column - 1:
return False
if graph[x][y] == 1:
return False
graph[x][y] = 1
dfs(x + 1, y)
dfs(x - 1, y)
dfs(x, y + 1)
dfs(x, y - 1)
return True
for i in range(row):
for j in range(column):
if dfs(i, j) == True:
result += 1
print(result)