from collections import deque
N=int(input())
arr=[list(map(int, input().strip())) for _ in range(N)]
def dfs(graph, x,y):
global cnt
if x < 0 or x >= N or y < 0 or y >= N:
return False
if graph[x][y]==1:
graph[x][y]=0
cnt+=1
dfs(graph, x-1, y)
dfs(graph, x+1, y)
dfs(graph, x, y-1)
dfs(graph, x, y+1)
return True
return False
result=[]
for i in range(N):
for j in range(N):
cnt=0
if dfs(arr,i,j):
result.append(cnt)
result.sort()
print(len(result))
for i in result:
print(i)
저 cnt를 graph[i][j]에 +1 하는식으로 저장하고 싶어서 헤맸고
입력 받을 때 띄어쓰기 없이 주니까 (0111000 이런식) strip()인데 split()해놓고서 또 헤맸고
출력에는 단지 몇개인지 print하고, 나머지 print해야되는데 단지 수 출력안해서 또 헤맸음
이거 너무 오래 걸렸어
'코테 공부' 카테고리의 다른 글
| 백준 7569 토마토(python) (0) | 2024.11.17 |
|---|---|
| 백준 2644번 촌수계산(python) (0) | 2024.11.17 |
| 구름 소금물의 농도 구하기 (python) (1) | 2024.11.15 |
| 구름레벨 인공지능 청소기 (3) | 2024.11.15 |
| 프로그래머스 Lv.2 n^2 배열 자르기 (1) | 2024.11.09 |