[백준] 1326번 폴짝폴짝 (파이썬)

전민기·2023년 9월 26일

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

from collections import deque

n = int(input())
arr = list(map(int, input().split()))
a, b = map(int, input().split())
a -= 1
b -= 1

distance = [-1]*n

def bfs(v):
    q = deque()
    q.append(v)
    distance[v] = 0
    
    while q:
        v = q.popleft()
        for i in range(v, n, arr[v]):
            if distance[i] == -1:
                distance[i] = distance[v] + 1
                q.append(i)
        
        for i in range(v, -1, -arr[v]):
            if distance[i] == -1:
                distance[i] = distance[v] + 1
                q.append(i)
                
bfs(a)
print(distance[b])

0개의 댓글