코테/백준 문제풀이
백준 2667
밤밭황제
2023. 1. 1. 19:46
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