공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 백준 5014. 스타트링크

inspirit941 2020. 7. 9. 17:01
반응형

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

 

5014번: 스타트링크

문제 강호는 코딩 교육을 하는 스타트업 스타트링크에 지원했다. 오늘은 강호의 면접날이다. 하지만, 늦잠을 잔 강호는 스타트링크가 있는 건물에 늦게 도착하고 말았다. 스타트링크는 총 F층으

www.acmicpc.net

BFS로 해결할 수 있는 문제.

 

import sys
from collections import deque
# F : 건물의 총 높이
# G : 목적지
# U : 위로 한 번에 이동할 수 있는 폭
# D : 아래로 한 번에 이동할 수 있는 폭
# 현재위치 = S.
F, S, G, U, D = map(int, sys.stdin.readline().split())
def bfs(start, end, up, down, F):
visited = set()
queue = deque()
queue.append((0, start))
visited.add(start)
while queue:
cnt, stairs = queue.popleft()
if stairs == end:
return cnt
if stairs + up <= F and stairs + up not in visited:
visited.add(stairs+up)
queue.append((cnt+1, stairs+up))
if stairs - down >= 1 and stairs - down not in visited:
visited.add(stairs-down)
queue.append((cnt+1, stairs-down))
return "use the stairs"
print(bfs(S, G, U, D, F))
반응형