BaekJoon5014_스타트링크

최효준·2023년 2월 16일
0

알고리즘 문제풀이

목록 보기
31/61

문제

풀이

생각보다 푸는데 시간이 좀 걸렸다. 이 문제를 품에 있어 bfs를 적용하기까지 생각하는 시간이 좀 오래 걸린 셈이다.
그냥 단순히 모든 층의 경우에 버튼을 누르는 최솟값을 구하는 과정을 반복하다보면 답이 나오지 않겠나라고 생각하니 풀린 문제.

풀이코드

from collections import deque

f,s,g,u,d = map(int,input().split())

count = [-1] * (f+1)

q = deque()
q.append(s)
count[s] = 0
while q:
    point = q.popleft()

    if point == g:
        print(count[point])
        exit()

    move_point1 = point + u
    move_point2 = point - d

    if 0< move_point1 <=f and count[move_point1] == 0:
        q.append(move_point1)
        count[move_point1] = count[point] + 1
    if 0 < move_point2 <= f and count[move_point2] == 0:
        q.append(move_point2)
        count[move_point2] = count[point] + 1
print("use the stairs")
profile
Not to be Number One, but to be Only One

0개의 댓글