티스토리 뷰

n, m = map(int, input().split())
iceBox = []
for i in range(n):
    iceBox.append(list(map(int, input())))


def dfs(x, y):  # 깊이 우선 탐색
    if x < 0 or x >= n or y < 0 or y >= m:
        return False

    if iceBox[x][y] == 0:
        iceBox[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)

'Python > 이코테' 카테고리의 다른 글

6-2. 위에서 아래로  (0) 2022.06.28
5-4. 미로 탈출  (0) 2022.06.26
5-2. 탐색 알고리즘 DFS/BFS  (0) 2022.06.24
5-1. 꼭 필요한 자료구조 기초  (0) 2022.06.23
4-3. 게임개발  (0) 2022.06.22
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday