소스 코드
import sys
import heapq
input = sys.stdin.readline
v,e = map(int, input().split())
visited = [False]*(v+1)
board = [[] for _ in range(v+1)]
tmp = [[0, 1]]
for _ in range(e):
start, end, w = map(int, input().split())
board[start].append([w, end])
board[end].append([w, start])
ans = 0
cnt = 0
while tmp:
if cnt == v:
break
w, s = heapq.heappop(tmp)
if not visited[s]:
visited[s] = True
ans += w
cnt += 1
for i in board[s]:
heapq.heappush(tmp, i)
print(ans)
해결 방법
1. 프림알고리즘
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 카드 합체 놀이 - PYTHON #15903 (0) | 2023.09.03 |
---|---|
[BOJ/백준 코딩] 부녀회장이 될테야 - PYTHON #2775 (0) | 2023.08.13 |
[BOJ/백준 코딩] 빗물 - PYTHON #14719 (0) | 2023.08.06 |
[BOJ/백준 코딩] 결혼식 - PYTHON #5567 (0) | 2023.07.30 |
[BOJ/백준 코딩] 추월 - PYTHON #2002 (0) | 2023.07.23 |