https://www.acmicpc.net/problem/7576
내 풀이
import sys
from collections import deque
input = sys.stdin.readline
def solution():
m,n = map(int,input().split())
graph = [list(map(int,input().split())) for _ in range(n) ]
dx = [1,-1,0,0]
dy = [0,0,1,-1]
def bfs():
q = deque()
for i in range(n):
for j in range(m):
if graph[i][j]==1:
q.append([i,j])
while q:
x,y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y+ dy[i]
if 0<=nx<n and 0<=ny <m:
if graph[nx][ny] == 0:
q.append((nx,ny))
graph[nx][ny] = graph[x][y] + 1
bfs()
left_over = False
max_days = -1
for i in range(n):
for j in range(m):
if graph[i][j]==0:
left_over = True
max_days = max(max_days,graph[i][j])
if left_over:
print(-1)
else:
print(max_days-1)
solution()
많이들 그랬을꺼같은데 N,M 가(로세로) 생각을 잘 해야한다. 아무생각없이 하면 틀린다.
다른사람의 풀이
'취준 > 백준' 카테고리의 다른 글
1504 - 파이썬 (0) | 2022.07.27 |
---|---|
7569 - 파이썬 (0) | 2022.07.26 |
2606 - 파이썬 (0) | 2022.07.13 |
24445 - 파이썬 (0) | 2022.07.11 |
24479 - 파이썬 (0) | 2022.07.11 |