가오리의 코딩일기
[2667] 단지번호 붙이기 본문
n = int(input())
graph = []
house = []
for _ in range(n):
graph.append(list(map(int, input())))
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def dfs(x, y):
if x < 0 or x >= n or y < 0 or y >= n:
return False
if graph[x][y] == 1:
global count
count += 1
graph[x][y] = 0
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
dfs(nx, ny)
return True
return False
count = 0
result = 0
for i in range(n):
for j in range(n):
if dfs(i, j) == True:
house.append(count)
count = 0
result += 1
house.sort()
print(result)
print(*house, sep='\n')
'Python > 백준' 카테고리의 다른 글
[2331] 반복수열 (0) | 2022.08.21 |
---|---|
[2178] 미로 탐색 (0) | 2022.08.21 |
[10451] 순열 사이클 (0) | 2022.08.21 |
[11724] 연결 요소의 개수 (0) | 2022.08.21 |
[1406] 에디터 (0) | 2022.08.15 |