https://www.acmicpc.net/problem/5014
5014번: 스타트링크
첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다.
www.acmicpc.net
from collections import deque
F, S, G, U, D = map(int,input().split())
visited = [0]*(F+1)
def bfs(S):
q = deque([S])
visited[S] = 1 # 시작점 방문처리 해줘야 U나 D가 0이어도 눌렀다고 카운트하지 않음
while q:
t = q.popleft()
if t == G:
return visited[t]-1 # 시작점도 방문처리 해줬으므로 1 빼주기
for w in [t+U,t-D]:
if 1<=w<=F and not visited[w]: # 건물은 1층~F층임
q.append(w)
visited[w] = visited[t]+1
return 'use the stairs'
print(bfs(S))
'백준' 카테고리의 다른 글
백준 11047. 동전 0 (0) | 2023.09.03 |
---|---|
백준 1463. 1로 만들기 (0) | 2023.09.03 |
백준 1697. 숨바꼭질 (0) | 2023.09.01 |
백준 7569. 토마토 (0) | 2023.08.31 |
백준 2644. 촌수계산 (0) | 2023.08.29 |