💡문제접근
- G층에 도착하기 위해 눌러야 하는 최소 버튼의 수를 구하는 문제다. 최소라는 단어에 바로 반응해서 BFS 탐색 알고리즘으로 접근했다.
💡코드
from collections import deque
import sys
input = sys.stdin.readline
F, S, G, U, D = map(int, input().strip().split())
visited = [0] * 1000001
flag = False
def BFS():
global flag
queue = deque()
queue.append(S)
visited[S] = 1
while queue:
v = queue.popleft()
if v == G:
flag = True
break
up = v + U
down = v - D
for i in [up, down]:
if 0 < i <= F and visited[i] == 0:
visited[i] = visited[v] + 1
queue.append(i)
if flag:
print(visited[G] - 1)
else:
print("use the stairs")
BFS()
💡소요시간 : 20m