[백준/Python] DFS/BFD - 7576번 토마토
👩🏻🏫 풀이
import sys
from collections import deque
# bfs 함수 밖에 정의
q = deque()
### 2
def bfs():
# q.append((x,y))
# 큐가 비워질때까지 반복문
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))
### 1
# 가로 칸, 세로 칸
m,n = map(int,sys.stdin.readline().split())
graph = []
dx = [-1,1,0,0]
dy = [0,0,-1,1]
# graph = [[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 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))
### 3
bfs()
cnt = 0
# graph = [[9, 8, 7, 6, 5, 4], [8, 7, 6, 5, 4, 3], [7, 6, 5, 4, 3, 2], [6, 5, 4, 3, 2, 1]]
for i in graph:
for j in i:
if j == 0:
print(-1)
exit(0)
cnt = max(cnt,max(i))
# 처음을 1로 시작했으므로 -1을 빼줌
print(cnt-1)
q = deque()
: 함수 밖에서 정의dfs()
: 인자 없이 함수 사용q.append((i,j))
: 익은 토마토의 좌표를 먼저 큐에 저장한 후 dfs() 함수를 사용한다는 것 (dfs함수 안에서 append하지 않음)
✏️ Python 문법
- 종료 코드
- 일반적으로 0과 1의 두 가지 종료 코드만 사용
- 0은 성공적인 실행을 나타내고, 1은 실패한 실행을 나타냅니다.
Author And Source
이 문제에 관하여([백준/Python] DFS/BFD - 7576번 토마토), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sugenius77/백준Python-DFSBFD-7576번-토마토저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)