🏷 문제

💡 코드
from collections import deque
n, m = map(int, input().split())
space = []
for i in range(n):
space.append(list(map(int, input().split())))
case = [[-1,0], [1,0], [0,-1], [0,1], [-1,-1], [-1,1], [1,-1], [1,1]]
INF = 1e9
visited = [[INF for _ in range(m)]for _ in range(n)]
for i in range(n):
for j in range(m):
if space[i][j] == 1:
q = deque()
q.append([i,j,1])
visited[i][j] = 0
while q:
x, y, d = q.popleft()
for c in range(8):
newx = x + case[c][0]
newy = y + case[c][1]
if 0<=newx<n and 0<=newy<m:
if space[newx][newy] == 0 and visited[newx][newy] > d:
q.append([newx,newy,d+1])
visited[newx][newy] = d
max_distance = 0
for i in range(n):
for j in range(m):
if visited[i][j] >= max_distance:
max_distance = visited[i][j]
print(max_distance)
🔑