N = int(input())
mp = []
dx = [1,-1, 0, 0]
dy = [0,0, 1, -1]
area = 0
arealst = []
cnt = 0
for i in range(N):
mp.append(list(map(int, input())))
def dfs(x, y):
global area
mp[x][y] = 0
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < N and 0 <= ny < N and mp[nx][ny] == 1:
area += 1
dfs(nx, ny)
for i in range(N):
for j in range(N):
if mp[i][j] == 1:
area =0
dfs(i, j)
cnt += 1
arealst.append(area+1)
print(cnt)
arealst.sort()
for i in range(cnt):
print(arealst[i])
728x90
'코테 > 백준 문제풀이' 카테고리의 다른 글
백준 치킨배달 (0) | 2023.01.11 |
---|---|
백준 회의실배정 (0) | 2023.01.03 |
백준 1697번 파이썬 (0) | 2023.01.01 |
백준 21611 마법사 상어와 블리자드 (0) | 2022.04.29 |
백준12100번 2048 (Easy) (0) | 2022.04.28 |