자료구조 & 알고리즘/백준(Baekjoon)
백준 2667(파이썬) 단지번호붙이기
resilient
2021. 2. 3. 00:44
728x90
반응형
2667번: 단지번호붙이기
<그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여
www.acmicpc.net
n = int(input())
graph =[]
for _ in range(n):
graph.append(list(map(int,input())))
cnt =0
answer=[]
def dfs(x,y):
global cnt
if x<=-1 or x>=n or y<=-1 or y>=n:
return False
if graph[x][y]==1:
graph[x][y]=0
cnt += 1
dfs(x-1,y)
dfs(x,y-1)
dfs(x+1,y)
dfs(x,y+1)
return True
return False
result = 0
for i in range(n):
for j in range(n):
cnt=0
if dfs(i,j) == True:
answer.append(cnt)
result += 1
print(result)
for i in sorted(answer):
print(i)
반응형