[BOJ] 1446. ์ง€๋ฆ„๊ธธ (๐Ÿฅˆ, ๋‹ค์ต์ŠคํŠธ๋ผ)

lemythe423ยท2023๋…„ 12์›” 20์ผ
0

BOJ ๋ฌธ์ œํ’€์ด

๋ชฉ๋ก ๋ณด๊ธฐ
90/133
post-thumbnail

๐Ÿ”—

ํ’€์ด

์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋„์ค‘์— ์ง€๋ฆ„๊ธธ์ด ์กด์žฌํ•œ๋‹ค. ํ•ญ์ƒ +1 ์นธ์„ ํ•  ์ˆ˜ ์žˆ๊ณ , ์ง€๋ฆ„๊ธธ์ด ์žˆ์œผ๋ฉด ์ง€๋ฆ„๊ธธ๋กœ ์ด๋™ํ•œ๋‹ค. ๊ฐ ์œ„์น˜์— ๋Œ€ํ•ด ํ•ด๋‹น ์œ„์น˜์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ๋Š” ํ•ด๋‹น ์œ„์น˜์˜ ๊ฐ’์ด ๋œ๋‹ค. ๋งŒ์•ฝ 5km ์œ„์น˜์— ์žˆ๋‹ค๋ฉด ์ง€๋ฆ„๊ธธ ์—†์ด ๋„๋‹ฌํ•˜๋Š”๋ฐ๋Š” 5km ์ด์ƒ์ด ๊ฑธ๋ฆด ์ˆ˜ ์—†๋‹ค.

์—ญ์ฃผํ–‰์ด ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ฌธ์ œ์˜ ์กฐ๊ฑด์„ ๋ชป ๋ณด๊ณ  ์ง€๋ฆ„๊ธธ์„ ์–‘๋ฐฉํ–ฅ ์„ค์ •ํ–ˆ๋‹ค๊ฐ€ ์‹œ๊ฐ„์ดˆ๊ณผ ๋‚  ๋ป”

# ์ง€๋ฆ„๊ธธ

import heapq
from collections import defaultdict

def dijkstra(start):
    Q = [(0, start)]
    dist = [i for i in range(D+1)]
    while Q:
        w, now = heapq.heappop(Q)

        if now > D or w > dist[now]:
            continue
        dist[now] = w
        for next, next_w in node[now]:
            heapq.heappush(Q, (w + next_w, next))
        heapq.heappush(Q, (w + 1, now + 1))
            
    return dist[-1]

N, D = map(int, input().split())
node = defaultdict(list)

for _ in range(N):
    s, e, d = map(int, input().split())
    node[s].append((e, d))
print(dijkstra(0))
profile
์•„๋ฌด๋ง์ด๋‚˜ํ•˜๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€