1차시도 [ 10 / 10 ] PASS
다익스트라 알고리즘 적용시켜서 그냥 고대~로 구현했다.
이해보다는 암기의 영역인 문제였다. 응용이 그다지 필요하지 않아서
import heapq
INF = int(1e9)
def dijkstra(start):
q = []
heapq.heappush(q, (0, start))
distance[start] = 0
while q:
dist, now = heapq.heappop(q)
if distance[now] < dist:
continue
for i in graph[now]:
cost = dist+i[1]
if cost < distance[i[0]]:
distance[i[0]] = cost
heapq.heappush(q, (cost, i[0]))
T = int(input())
for test_case in range(1, T+1):
N, E = map(int, input().split()) # 마지막 연결지점, 도로개수
distance = [INF]*(N+1)
graph = [[] for _ in range(E+1)]
for i in range(E):
s, e, w = map(int, input().split())
graph[s].append((e, w))
dijkstra(0)
print("#{} {}".format(test_case, distance[N]))
'CodingTest > SW Expert Academy' 카테고리의 다른 글
[ SW Expert Academy ] 5253. 접두어 검색 (0) | 2022.11.14 |
---|---|
[ SW Expert Academy ] 5252. 공통 단어 검색 (0) | 2022.11.14 |
[ SW Expert Academy ] 5250. 최소 비용 (0) | 2022.11.14 |
[ SW Expert Academy ] 5249. 최소 신장 트리 (0) | 2022.11.13 |
[ SW Expert Academy ] 5248. 그룹 나누기 # 다시 풀기 # (0) | 2022.11.13 |