[BOJ7569] 토마토
Updated:
며칠이 지나면 토마토들이 모두 익는지 구하기
- 격자모양 상자에 토마토 보관, 상자 수직으로 쌓음
- 익은 토마토는 안 익은 토마토 하루만에 익게 만듬
- 아래, 위, 그리고 사방으로 퍼트림
- 저절로 익는 경우 x
- 모든 토마토가 익는 최소 일수
입력
- 첫 줄 M, N, H (가로, 세로, 높이) (2 <= M, N <= 100) (1<=H<=100)
- 둘째 줄 부터 N줄은 상자에 저장된 토마토정보
- 1은 익은 토마토, 0은 익지 않은 토마토, -1 토마토가 없는 칸
출력
- 토마토가 모두 익는 최소 날짜
- 이미 모두 익어있는 상태면 0 출력
- 모두 익지 못 하는 상황이면 -1 출력
설계
- 현재 익은 ‘모든’ 토마토를 기준으로 동시에 다음 익을 토마토로 옮겨가야하기 때문에 BFS 이용
- 3차원 배열로 토마토위치 구성
- 큐에 주어진 토마토 위치 담기
- (BFS) 현재 담긴 큐의 모든 좌표를 기준으로 6방향의 안 익은 토마토 체크하여 큐에 넣기
- 날짜 카운트 + 1
- 토마토 입력에 0이 없으면 0, 모든 토마토를 익히지 못 할 경우 -1, 그 외에는 날짜 출력
How I solved(click to github)
ref :
BOJ7569
Leave a comment