문제 풀이 과정을 공유하고자 한다.
문제 출처
1. 문제설명
- char형 배열에 맵이 주어진다.
.
, #
, J
, F
는 각각 지나갈 수 있는 공간, 벽, 초기위치, 불이 난 공간
- J는 입력에서 하나만 주어진다.
- 불은 1초마다 상,하,좌,우로 퍼지게 된다.
- 지훈이와 불은 벽을 통과할 수 없다.
- 가장 빠른 탈출 시간을 출력하고, 탈출이 불가능하면 IMPOSSIBLE 출력
2. 알고리즘 설계
- 지훈이의 위치를 큐에 넣고 BFS
- 단, BFS의 마지막 부분에 불을 확산시키기 위한 로직 필요
3. 로직
4. 전체 코드
5. 소감
queue
의 size()
를 통해, 현재 저장된 모든 위치의 상,하,좌,우를 고려하는 문제
- 핵심은 동시에 갱신시키는 것