[알고리즘/백준] 16928번 : 뱀과 사다리 게임(python)

유현민·2022년 5월 11일
0

알고리즘

목록 보기
179/253
post-custom-banner

그냥 bfs쓰면 쉬운 문제이다.
뱀, 사다리 두가지를 리스트로 만들려고 했지만 그럴 필요가 없다.
만약 리스트안에 있으면 해당 숫자로 바꿔주고 그 숫자가 방문한 숫자이면 가지말자.

from collections import deque


def bfs(x):
    global ans
    visited[x] = 0
    q = deque()
    q.append(x)
    while q:
        x = q.popleft()
        for i in range(1, 7):
            nx = x + i
            if 1 <= nx <= 100 and visited[nx]:
                if a[nx]:
                    nx = a[nx][0]
                if visited[nx]:
                    q.append(nx)
                    visited[nx] = 0
                    board[nx] = board[x] + 1


N, M = map(int, input().split())
board = [0] * 101
visited = [1] * 101
a = [[] for _ in range(101)]
ans = 0
for _ in range(N + M):
    u, v = map(int, input().split())
    a[u].append(v)
bfs(1)
print(board[100])
profile
smilegate
post-custom-banner

0개의 댓글