티스토리 뷰

from collections import deque


def bfs():
    q = deque()
    q.append(s)
    visited[s] = 1
    
    while q:
        xx = q.popleft()
        
        for i in range(2):
            nx = xx + dx[i]
            if 1 <= nx <= f:
                if not visited[nx]:
                    visited[nx] = visited[xx] + 1
                    q.append(nx)
                    if nx == g:
                        print(max(visited) - 1)
                        return
    print("use the stairs")



# f : 꼭대기 층수 || s : 현재 층 || g : 스타트링크 층 || u : 위로 U층을 가는 버튼 || d : 아래로 D층을 가는 버튼
f, s, g, u, d = map(int, input().split())
dx = [u, -d]
visited = [0] * (f + 1)

if s == g:
    print(0)
else:
    bfs()

[Gold V] 스타트링크 - 5014

문제 링크

성능 요약

메모리: 70396 KB, 시간: 912 ms

분류

너비 우선 탐색(bfs), 그래프 이론(graphs), 그래프 탐색(graph_traversal)

 

'코딩테스트 > 백준' 카테고리의 다른 글

파이썬 | 10026 _ 적록색약 _ G5  (0) 2022.07.12
파이썬 | 7576 _ 토마토 _ G5  (0) 2022.07.11
파이썬 | 2589_보물섬_G5  (0) 2022.07.07
파이썬 | 16918 봄버맨 _ S1  (0) 2022.07.04
파이썬 | 16948 . 데스 나이트 _S1  (0) 2022.06.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함