728x90
두 달전에 못풀던 걸 풀었다.
import sys
from collections import deque
# bfs 로 탐색 하기
def bfs(k,q,w):
count = 1
dx = [1,-1,0,0]
dy = [0,0,1,-1]
width = len(k)
queue = deque()
queue.append([q,w])
k[q][w] = 0
while queue:
a,b = queue.popleft()
for i in range(4):
temp_x = dx[i] + a
temp_y = dy[i] + b
if 0<=temp_x<width and 0<=temp_y<width and k[temp_x][temp_y] == 1:
k[temp_x][temp_y] = 0
queue.append([temp_x,temp_y])
count+=1
return count
k = [ ]
num = int(input())
for i in range(num):
k.append(list(map(int,list(input()))))
answer = [ ]
for i in range(0,len(k)):
for j in range(0,len(k)):
if k[i][j] == 1:
answer.append(bfs(k,i,j))
print(len(answer))
answer = list(sorted(answer))
for i in answer:
print(i)
728x90
'🟢 알고리즘 문제 풀이 > Baekjoon' 카테고리의 다른 글
| [파이썬] 백준 7576 토마토 (1) | 2023.07.04 |
|---|---|
| [파이썬] 백준 2178 미로 탐색 (0) | 2023.07.04 |
| [파이썬] 백준 14889 스타트와 링크 (0) | 2023.06.20 |
| [파이썬] 백준 2529 부등호 (0) | 2023.06.20 |
| [파이썬] 백준 1759 암호 만들기 (0) | 2023.06.19 |