
import sys,math
from queue import PriorityQueue
input=sys.stdin.readline
inf=math.inf
#테스트 케이스
t=input()
t = int(t)
def dfs(x,y):
global uy,ry
#print("#",x)
uy[x]=1
if st[x]==1 and x!=1:return inf
k=0
for next in graph[x]:
if next[0]!=y:
if uy[next[0]]==0:
zv=dfs(next[0],x)
k+=min(zv,next[1])
ry[x]=k
return k
for _ in range(t):
#섬의 수, 다리 수
a,b=map(int,input().split())
#0이 1개 들어있는 리스트 [0]에 (a+1)를 곱하면 [0, 0,..]이 됨
#0이 a+1개
#섬 노드들
st=[0]*(a+1)
uy=[0]*(a+1)
#비용
ry=[-inf]*(a+1)
#a+1개 만큼의 공간을 만들어서 graph[n]이 n번 정점을 나타내도록 함.
graph=[[]for i in range(a+1)]
#다리 수 만큼 for문
for i in range(b):
y=list(map(int,input().split()))
st[y[0]]+=1
st[y[1]]+=1
graph[y[0]].append([y[1],y[2]])
graph[y[1]].append([y[0],y[2]])
print(dfs(1,1))
코드 참고
https://joseph0528.tistory.com/64
와 내블로그다~
많은 관심부탁드립니다~