728x90
https://programmers.co.kr/learn/courses/30/lessons/42861#
프림 알고리즘으로 풀었다. 크루스칼로도 풀어도 될듯
from heapq import heappop, heappush
def solution(n, costs):
answer = 0
adj_list = [[] for _ in range(n)]
for s, e, c in costs:
adj_list[s].append((c, e))
adj_list[e].append((c, s))
# prim
visit = [0 for _ in range(n)]
h = [(0, 0)]
while h:
cur_d, cur = heappop(h)
if visit[cur]:
continue
visit[cur] = 1
answer += cur_d
for adj_d, adj in adj_list[cur]:
heappush(h, (adj_d, adj))
return answer
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 6087 레이저 통신 python (0) | 2022.02.14 |
---|---|
[백준] 10282 해킹 python (0) | 2022.02.14 |
[백준] 11404 플로이드 C++, python (0) | 2022.02.13 |
[백준] 2160 그림비교 c++ (0) | 2022.02.12 |
[백준] 18513 샘터 python (0) | 2022.02.12 |