▶문제설명
[BOJ] 백준 1726. 로봇
▶Hint
BFS 문제이다.
BFS 수행 시 모든 방향에 대해서 방문 체크를 해야한다는 점이 핵심이다.
- 어떻게 해당 위치에서 모든 방향에 대해 방문 체크를 수행하나?
visited[R][C][0 ~ 4] : 좌표 R,C에 방향 0, 1, 2, 3으로 방문했는지의 여부 체크
[Queue에서 꺼낸 뒤 수행해야 하는 일]
1. 현재 위치와 현재 방향이 도착지점인 경우 answer 값을 현재 카운트 값으로 업데이트
2. 현재 카운트 값이 answer보다 같거나 큰 경우는 더이상 볼 필요 없으므로 무시(continue)
3. 현재 위치에서 현재 방향으로 1칸/2칸/3칸 전진하는 경우에 대해 카운트를 1 증가시키면서 push
벽을 만나면 break 해주어야 함
4. 좌회전/우회전하는 경우에 대해 카운트를 1 증가시키면서 push
5. 두 번 회전하여 반대 방향을 보는 경우에 대해 카운트를 2 증가시키면서 push
▶Solution
'■ 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
[BOJ] 백준 2468. 안전 영역 (0) | 2019.05.28 |
---|---|
[BOJ] 백준 16236. 아기 상어 (0) | 2019.05.18 |
[BOJ] 백준 17140. 이차원 배열과 연산 (0) | 2019.05.03 |
[BOJ] 백준 17142. 연구소 3 (0) | 2019.05.02 |
[BOJ] 백준 17144. 미세먼지 안녕! (0) | 2019.05.01 |