
[다시 푸는 문제]
[DFS]
def DFS(x,y):
global danji
if x >= n or x < 0 or y >= n or y < 0:
return False
if house[x][y] == 1:
danji += 1
house[x][y] = 0
DFS(x,y-1)
DFS(x,y+1)
DFS(x-1,y)
DFS(x+1,y)
return True
return False
if __name__ == "__main__":
n = int(input())
house = []
for _ in range(n):
house.append(list(map(int,input())))
#연결된 단지가 몇개인지를 확인하기 위한 변수
danji = 0
#연결된 덩어리(단지)를 확인하기 위한 변수
cnt = 0
#연결된 단지가 몇개인지 최종적으로 넣어서 출력하기 위한 변수
cntList = []
for i in range(n):
for j in range(n):
if DFS(i,j) == True:
cnt += 1
cntList.append(danji)
danji = 0
print(cnt)
cntList.sort()
for i in cntList:
print(i)
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준][수학] - 24480. 알고리즘 수업 - 깊이 우선 탐색 2 (0) | 2022.05.19 |
---|---|
[백준][수학] - 17496. 스타후르츠 (0) | 2022.05.02 |
[백준][그래프] - 2606. 바이러스 (0) | 2022.04.29 |
[백준][그래프] - 1260. DFS와 BFS (0) | 2022.04.29 |
[백준][수학/사칙연산] 2525. 오븐 시계 (0) | 2022.03.01 |