From 9cd5b1b7f905468d9b0b5fc281a96c677526c4fd Mon Sep 17 00:00:00 2001 From: songyc macbook Date: Mon, 20 Oct 2025 20:54:26 +0900 Subject: [PATCH] 20251020 baekjoon --- code_study/Baekjoon/python/11779.py | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 code_study/Baekjoon/python/11779.py diff --git a/code_study/Baekjoon/python/11779.py b/code_study/Baekjoon/python/11779.py new file mode 100644 index 0000000..1d739a2 --- /dev/null +++ b/code_study/Baekjoon/python/11779.py @@ -0,0 +1,45 @@ +import heapq + +n, m = map(int, [input(), input()]) +graph = [[] for _ in range(n+1)] + +for _ in range(m) : + u, v, w = map(int, input().split()) + graph[u].append((v,w)) + +start, end = map(int, input().split()) + +inf = float("inf") +distance = [inf for _ in range(n+1)] +distance[start] = 0 + +prevNode = [0]*(n+1) + +heap = [] +heapq.heappush(heap, (0, start)) + +while len(heap) != 0 : + cur_dist, now = heapq.heappop(heap) + + if distance[now] < cur_dist : + continue + + for Next in graph[now] : + next, nw = Next + + if distance[next] > distance[now] + nw : + distance[next] = distance[now] + nw + heapq.heappush(heap, (distance[next], next)) + prevNode[next] = now + +channel = [end] +ptr = end +while ptr != start : + ptr = prevNode[ptr] + channel.append(ptr) + +channel.reverse() + +print(distance[end]) +print(len(channel)) +print(*channel) \ No newline at end of file