코테 공부

백준 2667 단지번호 붙이기 (python)

dnjswngo 2024. 11. 15. 22:45
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해야되는데 단지 수 출력안해서 또 헤맸음

이거 너무 오래 걸렸어