728x90
#2667
N = int(input())
P = [list(map(int,input())) for i in range(N)]
def DFS(x,y):
global R
if 0 > x or x >= N or 0 > y or y >= N:
return False
if P[x][y] == 1:
R += 1
P[x][y] = 0
DFS(x-1,y)
DFS(x,y+1)
DFS(x+1,y)
DFS(x,y-1)
return True
return False # 지워도 됨
arr = [] # 단지 내 아파트 숫자를 저장
R = 0 # 단지 내 아파트 숫자
for i in range(N):
for j in range(N):
if DFS(i,j) == 1:
arr.append(R)
R = 0
print(len(arr))
for i in sorted(arr):
print(i)
728x90
'Algorithm' 카테고리의 다른 글
백준 1012 파이썬 (0) | 2022.01.04 |
---|---|
BFS 알고리즘 정리 (0) | 2022.01.03 |
DFS 알고리즘 정리 (0) | 2021.12.31 |
백준 2606 파이썬 (0) | 2021.12.29 |
브루트포스(Brute Force) 알고리즘 (0) | 2021.12.20 |