👩🏻🏫 풀이
import sys
from collections import deque
q = deque()
def bfs():
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:
graph[nx][ny] = graph[x][y]+1
q.append((nx,ny))
m,n = map(int,sys.stdin.readline().split())
graph = []
dx = [-1,1,0,0]
dy = [0,0,-1,1]
for i in range(n):
graph.append(list(map(int,sys.stdin.readline().split())))
for i in range(n):
for j in range(m):
if graph[i][j] == 1:
q.append((i,j))
bfs()
cnt = 0
for i in graph:
for j in i:
if j == 0:
print(-1)
exit(0)
cnt = max(cnt,max(i))
print(cnt-1)
q = deque()
: 함수 밖에서 정의
dfs()
: 인자 없이 함수 사용
q.append((i,j))
: 익은 토마토의 좌표를 먼저 큐에 저장한 후 dfs() 함수를 사용한다는 것 (dfs함수 안에서 append하지 않음)
✏️ Python 문법
- 종료 코드
- 일반적으로 0과 1의 두 가지 종료 코드만 사용
- 0은 성공적인 실행을 나타내고, 1은 실패한 실행을 나타냅니다.