티스토리 뷰
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 |
댓글