Problem : 불!
유형 : BFS
문제 해석
- 지훈이가 미로에서 탈출할 수 있는지를 확인하라
문제 재해석
- 불과 지훈이는 벽을 통과하지 못한다.
- 지훈이는 불을 통화하지 못한다.
- 지훈이는 가장 자리에 도착하면 탈출한다.
해결 전략
- 1초씩 움직이므로
BFS
로 최단거리를 재어 지훈이가 탈출 할 수 있는지 확인하면 된다.
구현, 설계
- 불을 먼저 BFS 진행 시키며 불이 해당 위치에 도착한 시간을 기록한다.
- 지훈이를 BFS 진행 시키되 가려는 곳에 불이 먼저 도착했으면 가지 못한다.
- 지훈이가 가장자리에 도착하면 가장자리
도착시간 + 1
하여 탈출한다.
주의할점
visit
배열을 따로 두지 않고 -1
로 초기화 했을 경우 조심 해야 한다.- 불이
-1
초에 지나간 곳은 불이 지나간 것이 아니다.
1 |
|
이런 반례가 있을 수 있다.
- 가장자리 변은 2개가 아니라
총 4개
가 있다.
코드
1 |
|
피드백
- BFS에서 visit배열을 따로 두지 않고 -1로 초기화 사용시에는 주의하자.
- 문제 해답 조건에서 놓친 부분이 있지 않을까 고민하자. (가장자리
0
부분을 놓쳤었다) - 한번에 맞출 수 있도록 항상 주의하자.