https://www.acmicpc.net/problem/16928
풀이
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 |