https://www.acmicpc.net/problem/5014
풀이
BFS로 모든경우의 수를 visit에 저장해준 뒤 target값을 출력
# 5014번 스타트링크
from collections import deque
floor, start, target, u, d = map(int, input().split())
visit = [0] * (floor+1)
visit[0] = 1
dx = [u, -d]
def bfs():
queue = deque()
queue.append(start)
visit[start] = 1
while queue:
x = queue.popleft()
for i in range(2):
nx = x + dx[i]
if 0 <= nx <= floor and visit[nx] == 0:
visit[nx] = visit[x] + 1
queue.append(nx)
return visit[target]
ans = bfs()
if ans == 0:
print("use the stairs")
else:
print(ans-1)
출력결과
'백준 > DFS&BFS' 카테고리의 다른 글
[백준] 7562번 나이트의 이동 - 파이썬 (0) | 2022.02.11 |
---|---|
[백준] 2468번 안전영역 - 파이썬 (0) | 2022.02.11 |
[백준] 1697번 숨바꼭질 - 파이썬 (0) | 2022.02.11 |
[백준] 1963번 소수 경로 - 파이썬 (0) | 2022.02.07 |
[백준] 14502번 연구소 - 파이썬 (0) | 2022.01.29 |