단지번호붙이기 실버 1 (백준, BFS)
2023. 2. 10. 14:43ㆍ코딩 테스트 준비
728x90
반응형
from collections import deque
def bfs(x,y):
q = deque()
q.append((x,y))
graph[x][y] = 0
cnt = 1
while q:
x, y = q.popleft()
for dx, dy in d:
X,Y = x+dx, y+dy
if 0<=X<n and 0<=Y<n and graph[X][Y] == 1:
graph[X][Y] = 0
q.append((X,Y))
cnt += 1
return cnt
n = int(input())
ans = []
d = [(1,0),(-1,0),(0,1),(0,-1)]
graph = [list(map(int, input())) for _ in range(n)]
for j in range(n):
for i in range(n):
if graph[i][j] == 1:
ans.append(bfs(i,j))
print(len(ans))
ans.sort()
for i in ans:
print(i)
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
봄버맨 실버1 (백준, 탐색) (0) | 2023.02.13 |
---|---|
신입 사원 실버 1 (백준, 그리디) (0) | 2023.02.13 |
구간 합 구하기 5 실버1 (백준, DP) (0) | 2023.02.10 |
잃어버린 괄호 실버2 (백준, 그리기) (0) | 2023.02.10 |
선분 위의 점 실버 3 (백준, 이진탐색) (0) | 2023.02.09 |