반응형
import sys
from collections import deque
x = [-1,1,0,0]
y = [0,0,-1,1]
count = 0
m,n = map(int, sys.stdin.readline().split())
box = [list(map(int,sys.stdin.readline().split()))for _ in range(n)]
def bfs():
global count
queue = deque([])
for i in range(n):
for j in range(m):
if box[i][j] == 1:
queue.append([i,j,0])
while queue:
a,b,c = queue.popleft()
for k in range(4):
aa = a + x[k]
bb = b + y[k]
if 0<=aa<n and 0<=bb<m:
if box[aa][bb] == 0:
box[aa][bb] = 1
queue.append([aa,bb,c+1])
count = c
return
bfs()
for i in range(n):
if 0 in box[i]:
count = -1
print(count)
반응형
'코딩 이야기 > 백준 풀이' 카테고리의 다른 글
백준 1912번: 최소비용 구하기 파이썬 코드(다익스트라) (0) | 2021.05.08 |
---|---|
백준 1697번: 숨바꼭질 파이썬 코드(bfs) (0) | 2021.03.17 |
백준 1038번: 감소하는 수 파이썬 코드(백트래킹) (3) | 2021.02.16 |
백준 4963번: 섬의 개수 파이썬 코드(dfs) (0) | 2021.02.14 |
백준 1010번: 다리 놓기 파이썬 코드 (2) | 2021.02.11 |