[백준] 5014번 스타트링크

거북이·2023년 2월 2일
0

백준[실버1]

목록 보기
20/67
post-thumbnail

💡문제접근

  • 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

0개의 댓글