def solution(n, s, a, b, fares):
answer = 200*100000+1
fare = [[200*100000+1] * (n+1) for _ in range(n+1)]
for [c, d, f] in fares:
fare[c][d] = fare[d][c] = f
for k in range(1, n+1):
for i in range(1, n+1):
for j in range(1, n+1):
if i == j:
fare[i][j] = 0
else:
fare[i][j] = min(fare[i][j], fare[i][k]+fare[k][j])
for i in range(1, n+1):
answer = min(answer, fare[s][i] + fare[i][a] + fare[i][b])
return answer
효율성에서 하나가 틀렷다..시간초과