728x90
https://www.acmicpc.net/problem/5014
- 생각
- 최단 경로를 구하는 것이므로 bfs
- 코드
from sys import stdin
from collections import deque
input = stdin.readline
F,S,G,U,D = map(int,input().split())
# 총 F층인 건물, S층에서 G층 가기
# 방문 표시
visited = [0]*(F+1)
def bfs(now):
global visited
visited[now] = 1
que = deque()
que.append(now)
while que:
# 현 위치
c_floor = que.popleft()
# 도착?
if c_floor == G:
return visited[c_floor]-1
# 위 아래 이동
for i in [U,-D]:
# 건물 층 수 내, 방문한 적 없는 층
if 0 < c_floor + i <= F and visited[c_floor + i] == 0:
que.append(c_floor + i)
visited[c_floor + i] = visited[c_floor] + 1
# 도착 못했다면
return 'use the stairs'
print(bfs(S))
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[백준] 1991. 트리 순회 - Python (0) | 2022.08.01 |
---|---|
[백준] 11403. 경로 찾기 - Python (0) | 2022.07.22 |
[백준] 14501. 퇴사 - Python (0) | 2022.07.03 |
[백준] 2667. 단지번호붙이기 - Python (0) | 2022.07.02 |
[프로그래머스] Lv.2 프렌즈4블록 - Python (0) | 2022.06.30 |
댓글