2667_단지번호붙히기 (푸느라 오래걸림)

Ji·2021년 5월 22일
0
import sys
n=int(sys.stdin.readline())
result=0
graph=[]
global count
count=0
count_house=0 # 집이 없는 곳 판별하는 변수
count_list=[]

for i in range(n):
    graph.append(list(map(int,input())))
    

for i in range(n):
    for j in range(n):
        if graph[i][j]==0:
            count_house+=1

def dfs(x,y):
    global count
    if x<=-1 or x>=n or y<=-1 or y>=n:
        return False
    
    if graph[x][y]==1: # 1 발견-> 1의 덩어리 세어보기.
        graph[x][y]=0
        count+=1
        
        dfs(x-1,y)
        dfs(x+1,y)
        dfs(x,y-1)
        dfs(x,y+1) # 상하좌우 위치 모두 dfs 호출
        return True
        

for i in range(n):
    for j in range(n):
        if dfs(i,j)==True:
            count_list.append(count)
            count=0
            result+=1
            

            
print(result)
count_list.sort()
for i in count_list:
    print(i)

if count_house==len(graph*n):
    print(0)

  • 온갖 짓을 다했는데 계속 틀린다. 현타가 너무 쎄게 와서 나중에 풀도록 남겨두려고 함.
  • +이유 찾음. count_list.sort() 해야되는데 빼먹었다. 죽고싶다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
profile
공부방

1개의 댓글

comment-user-thumbnail
2022년 2월 4일

죽지 마세욧 !

답글 달기