16928번: 뱀과 사다리 게임

Memo


게임판을 굳이 이차원 배열로 표현하지 않아도 됩니다.

게임의 목표는 1번 칸에서 시작해서 100번 칸으로 이동하는 것이고, 입력을 보면 "x번 칸에 도착하면, y번 칸으로 이동" 이기 때문에 굳이 이차원 배열로 표현하지 않았습니다.

BFS

1번 칸 부터 시작하여, 주사위로 굴려 이동할 수 있는 모든 경우의 수를 조사합니다. queue에 (이동한 칸, 주사위를 굴린 횟수)를 넣고 뺌으로써 가까운 거리부터 조사해 나갑니다.

Visited check

한 번 방문한 곳을 다시 방문한 경우에는 continue를 통해 더 이상 큐에 넣지 않습니다. 그 이유는, 이전에 방문한 경우에서 주사위를 굴려 이동가능한 경우의 수는 현재 다시 방문한 경우의 경우의 수와 완전히 동일하기 때문입니다. 이전에 방문한 경우는 현재 방문했을 때 까지의 주사위를 굴린 횟수보다 작거나 같습니다. (가까운 거리부터 조사하는 BFS의 특성상)

Code


제출 날짜

2021/04/03

메모리

2016 KB

시간