1+ def dijkstra (start , graph , distance ):
2+ q = []
3+ q .append ((0 ,start ))
4+ distance [start ] = 0
5+
6+ while len (q )!= 0 :
7+ dist , now = q .pop ()
8+ if distance [now ] < dist :
9+ continue
10+ for i in graph [now ]:
11+ cost = dist + i [1 ]
12+
13+ if cost < distance [i [0 ]]:
14+ distance [i [0 ]] = cost
15+ q .append ((cost , i [0 ]))
16+
17+ def solution (n , s , a , b , fares ):
18+ INF = 100001 * (n - 1 )
19+ answer = []
20+
21+ graph = [[]for i in range (n + 1 )]
22+ for start , end , fare in fares :
23+ graph [start ].append ((end , fare ))
24+ graph [end ].append ((start , fare ))
25+
26+ s_distance = [INF ] * (n + 1 )
27+ dijkstra (s , graph , s_distance )
28+
29+ for i in range (1 , n + 1 ):
30+ a_distance = [INF ] * (n + 1 )
31+ b_distance = [INF ] * (n + 1 )
32+ dijkstra (i , graph , a_distance )
33+ dijkstra (i , graph , b_distance )
34+ answer .append (s_distance [i ]+ a_distance [a ]+ b_distance [b ])
35+ return min (answer )
36+
37+ '''
38+ 정확성 테스트
39+ 테스트 1 〉 통과 (0.07ms, 10.2MB)
40+ 테스트 2 〉 통과 (0.05ms, 10.3MB)
41+ 테스트 3 〉 통과 (0.07ms, 10.3MB)
42+ 테스트 4 〉 통과 (0.47ms, 10.4MB)
43+ 테스트 5 〉 통과 (0.21ms, 10.3MB)
44+ 테스트 6 〉 통과 (0.46ms, 10.3MB)
45+ 테스트 7 〉 통과 (0.52ms, 10.3MB)
46+ 테스트 8 〉 통과 (0.90ms, 10.3MB)
47+ 테스트 9 〉 통과 (0.89ms, 10.3MB)
48+ 테스트 10 〉통과 (1.16ms, 10.3MB)
49+
50+ 효율성 테스트
51+ 테스트 1 〉 통과 (407.40ms, 10.2MB)
52+ 테스트 2 〉 통과 (3523.25ms, 10.7MB)
53+ 테스트 3 〉 통과 (891.61ms, 10.3MB)
54+ 테스트 4 〉 통과 (889.09ms, 10.2MB)
55+ 테스트 5 〉 통과 (1007.23ms, 10.2MB)
56+ 테스트 6 〉 통과 (1020.65ms, 10.3MB)
57+ 테스트 7 〉 실패 (시간 초과)
58+ 테스트 8 〉 실패 (시간 초과)
59+ 테스트 9 〉 통과 (1807.79ms, 15.4MB)
60+ 테스트 10 〉통과 (1574.53ms, 15.5MB)
61+ 테스트 11 〉통과 (1587.24ms, 15.5MB)
62+ 테스트 12 〉실패 (시간 초과)
63+ 테스트 13 〉실패 (시간 초과)
64+ 테스트 14 〉실패 (시간 초과)
65+ 테스트 15 〉실패 (시간 초과)
66+ 테스트 16 〉통과 (727.97ms, 10.2MB)
67+ 테스트 17 〉통과 (800.84ms, 10.3MB)
68+ 테스트 18 〉통과 (747.98ms, 10.3MB)
69+ 테스트 19 〉통과 (3748.25ms, 10.5MB)
70+ 테스트 20 〉통과 (6034.32ms, 10.7MB)
71+ 테스트 21 〉통과 (5461.49ms, 10.7MB)
72+ 테스트 22 〉실패 (시간 초과)
73+ 테스트 23 〉실패 (시간 초과)
74+ 테스트 24 〉실패 (시간 초과)
75+ 테스트 25 〉통과 (268.49ms, 10.3MB)
76+ 테스트 26 〉통과 (238.50ms, 10.3MB)
77+ 테스트 27 〉통과 (4853.87ms, 10.5MB)
78+ 테스트 28 〉통과 (4856.66ms, 10.5MB)
79+ 테스트 29 〉통과 (186.32ms, 10.2MB)
80+ 테스트 30 〉통과 (239.93ms, 10.2MB)
81+ '''
0 commit comments