[BOJ7576] 토마토

Updated:

며칠이 지나면 토마토들이 모두 익는지 구하기

  • 창고 각 격자에 토마토 보관
  • 익은 토마토는 안 익은 토마토 하루만에 익게 만듬
  • 사방으로 퍼트림
  • 저절로 익는 경우 x
  • 모든 토마토가 익는 최소 일수

입력

  • 첫 줄 상자 크기 M, N (가로, 세로) (2 <= M, N <= 1,000)
  • 둘째 줄 부터 N줄은 상자에 저장된 토마토정보
  • 1은 익은 토마토, 0은 익지 않은 토마토, -1 토마토가 없는 칸

출력

  • 토마토가 모두 익는 최소 날짜
  • 이미 모두 익어있는 상태면 0 출력
  • 모두 익지 못 하는 상황이면 -1 출력

설계

  • 큐 클래스 템플릿 <익은 토마토 좌표, 날짜>
  • 익은 토마토 큐에 넣기
  • 사방 체크 후 안 익은 토마토를 익은 토마토로 변경 후 날짜 카운트 증가
  • 바로 모두 익은 상태면 0 출력
  • 큐에 값이 없을 때 (인접 토마토 모두 익힌 상태) 안 익은 토마토가 있으면 -1 출력, 아니면 날짜 출력

피드백

  • 자꾸 증감에 ‘cnt++’ 방식으로 사용하니, 파라미터로 사용할 경우 증가하기 전 값이 입력되는 문제 생김. 확실하게 ‘cnt + 1’ 또는 ‘++cnt’ 방식 사용

How I solved(click to github)


ref :
BOJ7576

Leave a comment