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알고리즘을 이용하여 풀어주었습니다.
코드
# 16928번 뱀과 사다리 게임
import sys
from collections import deque
input = sys.stdin.readline
n, m = map(int, input().split())
board = [0]*(101)
visited = [False]*(101)
for _ in range(n):
a, b = map(int, input().split())
board[a] = b
for _ in range(m):
a, b = map(int, input().split())
board[a] = b
def bfs():
queue = deque([])
queue.append([1,1])
visited[1] = 1
while queue:
cnt, c = queue.popleft()
for i in range(1,7):
n_c = c + i
if 0 <= n_c < 101 and visited[n_c] == False:
if board[n_c] != 0:
visited[n_c] = cnt +1
queue.append([cnt+1, board[n_c]])
if visited[board[n_c]] == False:
visited[board[n_c]] = cnt + 1
else:
visited[n_c] = cnt + 1
queue.append([cnt+1, n_c])
bfs()
print(visited[100]-1)
출력결과
'백준 > DFS&BFS' 카테고리의 다른 글
[백준][Python] 17836번 공주님을 구해라! - 코팩 (0) | 2023.04.04 |
---|---|
[백준][Python] 13565번 침투 - 코팩 (0) | 2023.03.30 |
[백준][Python] 14716번 현수막 - 코팩 (0) | 2023.03.27 |
[백준][Python] 2660번 회장뽑기 - 코팩 (0) | 2023.03.23 |
[백준][Python] 2636번 치즈 - 코팩 (0) | 2023.03.20 |