백준 - 스타트링크 / Silver 1 / 5014번 / Python

Ed Park·2023년 3월 28일
0
post-custom-banner

문제 📋

백준 - 스타트링크


풀이 📝

import sys
from collections import deque


def solution(n, start, target, up, down):
    cnt = 0
    visited = [False] * (n+1)
    delta = [up, -down]
    q = deque([start])

    while q:
        for _ in range(len(q)):
            cur = q.popleft()

            if cur == target:
                return cnt

            for i in range(2):
                new_floor = cur + delta[i]

                if 0 < new_floor <= n and not visited[new_floor]:
                    visited[new_floor] = True
                    q.append(new_floor)
        cnt += 1
    return "use the stairs"


n, start, target, up, down = map(int, sys.stdin.readline().split())
print(solution(n, start, target, up, down))

실제 시험 상황에서 아무리 늦어도 30분 안엔 풀고 넘어가야 하는 문제이다.
이동할 수 있는 층들을 탐색할 노드로 생각하고
최소한의 이동으로 목표 층에 도달해야 되기 때문에
최단거리 문제 즉 BFS을 사용하여 문제를 해결해야 한다.

profile
Simple is the best
post-custom-banner

0개의 댓글