09009
[백준 5014번] 스타트링크 본문
문제 보기
https://www.acmicpc.net/problem/5014
5014번: 스타트링크
첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다.
www.acmicpc.net
문제 해결
방문한 노드는 방문 표시를 해주는 것에 유의할 것
소스 코드
import sys
from collections import deque
input = sys.stdin.readline
f, s, g, u, d = map(int, input().split())
dp = [0 for _ in range(f+1)]
visited = [0 for _ in range(f+1)]
def bfs(v):
q = deque([v])
visited[v] = 1
while q:
v = q.popleft()
if v == g:
return dp[g]
for i in (v+u, v-d):
if 0 < i <= f and not visited[i]:
visited[i] = 1
dp[i] = dp[v] + 1
q.append(i)
if dp[g] == 0:
return "use the stairs"
print(bfs(s))
'Algorithm > BFS DFS' 카테고리의 다른 글
(X) [백준 9466번] 팀 프로젝트 (0) | 2023.09.27 |
---|---|
[백준 6593번] 상범 빌딩 (0) | 2023.09.24 |
[백준 2583번] 영역 구하기 (0) | 2023.09.05 |
[백준 1012번] 유기농 배추 (0) | 2023.03.26 |
[백준 2667번] 단지번호붙이기 (0) | 2023.03.26 |
Comments