반응형
문제
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를 떠올렸습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 1707 이분 그래프 (Swift) (0) | 2023.04.27 |
---|---|
[BOJ] 백준 2206 벽 부수고 이동하기 (Swift) (0) | 2023.04.27 |
[BOJ] 백준 7569 토마토 (Swift) (0) | 2023.04.27 |
[BOJ] 백준 7576 토마토 (Swift) (0) | 2023.04.27 |
[BOJ] 백준 7562 나이트의 이동 (Swift) (0) | 2023.04.27 |