얼음틀

첫 번째 줄은 얼음 트레이의 세로 길이 N과 가로 길이 M을 나타냅니다(1 <= N,M <= 1000).

얼음틀의 모양은 2열부터 N+1열까지 주어진다.

이때 구멍이 있는 부분은 0이고 구멍이 없는 부분은 1이다.

한 번에 만들 수 있는 얼음의 개수를 출력하시오.

입력:

4 5

00110

00011

11111

00000

출구: 3

해결책:

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 -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):
        if dfs(i, j) == True:
            result += 1

print(result)