[백준] 7576 문제 in 파이썬
백준 7576번 : 토마토
https://www.acmicpc.net/problem/7576
문제
풀이
BFS
Step 1
- Moving offset을 정의해준다. (21736번 포스팅 참고)
Step 2
- 시작 위치를 저장해둔 배열에서 첫 번째 인덱스에 있는 토마토 좌표를 q에서 pop 한다.
- 상하좌우로 이동하며 익힐 토마토, 즉 값이 0인 좌표를 찾는다.
- 토마토를 익힐 때마다 익혀지는 좌표 값에 1을 더해준다. 이때, 익혀지는 좌표는 이미 1일 수도 있다. 0 -> 1로 갱신하지 않는 이유는 계속 1을 더하여 좌표의 최댓값을 구하면 총 익힌 횟수를 구할 수 있기 때문이다.
일수
- 0인 토마토가 남아있다면 -1을 출력하여 토마토를 다 익히지 못했음을 표시한다.
- 다 익혔다면 좌표 중 최댓값이 정답이므로 max 값을 구해준다. 이후, 처음 시작 노드가 1이었으니 1을 빼준다.
댓글남기기