하 이걸 삼십분넘게 붙들고 있던 내 인생이 레전드..
from _collections import deque
N = int(input())
arr = []
for _ in range(N):
arr.append(list(int(c) for c in input()))
visited = [[False]*N for _ in range(N)]
queue = deque()
delta = [(1, 0), (-1, 0), (0, 1), (0, -1)]
ans = []
for i in range(N):
for j in range(N):
if arr[i][j] == 1 and not visited[i][j]:
queue.append((i, j))
houseCnt = 0
while queue:
x, y = queue.popleft()
if arr[x][y] == 1 and not visited[x][y]:
visited[x][y] = True
houseCnt += 1
for d in delta: # 진짜 미친거 아냐?????????
nx = d[0] + x
ny = d[1] + y
if 0 <= nx < N and 0 <= ny < N:
queue.append((nx, ny))
ans.append(houseCnt)
print(len(ans))
for num in sorted(ans):
print(num)
생각 안하고 기계처럼 풀다가 말도안되는 실수를 했다. nx와 ny를 선언할때 x와 y를 더하지 않는 미친짓을 했다. 제발 생각하면서 풀자.