티스토리 뷰


  • 입력 : 세로 크기 N, 가로 크기 M ( 2 <= M,N <= 1,000 )

        1 = 익은 토마토, 0 = 익지 않은 토마토, -1 = 토마토가 들어있지 않은 칸


  • 출력 : 토마토가 모두 익을 때까지의 최소 날짜 출력, 저장될 때부터 모든 토마토가 익었다면 0,                              모두 익지 못하는 상황이면 -1 출력




  • 문제 해결 :  

1) 입력을 받으면서 익은토마토의 위치를 큐에 PUSH하고 (BFS를사용), 안 익은 토마토의 갯수를 저장한다.

1-1) 안익은 토마토가 없다면 모두 익은것이므로 0을 출력하고 끝낸다.

1-2) 아니라면 큐를 이용하여 BFS를 시작한다.

2) day를 기록하기위해 큐에 들어간 사이즈만큼 탐색을 해야한다.

3) BFS의 조건 ( 토마토가 들어있지않은곳, 맵 밖 벗어난곳 ) 을 생각하여 큐에 넣는다

4) 큐 사이즈만큼 POP이 끝났으면 하루가 지난것이므로 day를 증가

5) 큐가 비어있을때까지 반복한다.


< 작성 코드 >



댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함