본문 바로가기

PS/백준

[BOJ] 백준 16928 뱀과 사다리 게임 (Swift)

반응형

문제

https://www.acmicpc.net/problem/16928

 

16928번: 뱀과 사다리 게임

첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으

www.acmicpc.net

풀이

BFS로 풀이할 수 있는 문제입니다.

뱀과 사다리가 있기 때문에 해당 칸에 도착했을 시, 뱀이나 사다리가 있다면 이동시켜주어야 합니다.
저는 [Int: Int] 형태의 Dictionary를 사용해서 뱀과 사다리의 정보를 담아주었습니다.

그 이후 BFS 코드를 작성할 때, 현재 위치에서 주사위를 굴려 +1 ~ +6 으로 이동할 수 있습니다.
이동한 곳에 뱀과 사다리가 있다면 해당 위치로 이동하여야 합니다.

이동한 곳의 칸이 Dictionary의 키로 존재한다면 뱀이나 사다리가 위치하고 있는 것이므로,
뱀과 사다리를 통해 갈 수 있는 칸으로 이동시켜 주었고, 그곳을 방문처리 하였습니다.

뱀이나 사다리가 없다면, 일반적인 칸이므로 그냥 이동시켜주고, 방문처리 하였습니다.

소스코드

후기

BFS로 풀 수 있는 문제였습니다.
뱀이나 사다리를 동시에 갖고 있는 경우는 없기 때문에 Dictionary를 떠올렸습니다.

반응형