https://www.acmicpc.net/problem/1916

백준 1916문제를 푸려고 하는데요

아래의 코드가 틀렸다고 뜹니다. 어느 부분에서 틀린건지 잘 모르겠어서 이렇게 글 올립니다.

도움 부탁드립니다.


from collections import defaultdict

n = int(input()) # 도시의 개수
m = int(input()) # 버스의 개수

bus_dict = defaultdict(list)
for i in range(1,n+1):
bus_dict[i]
for i in range(m):
a = [int(x) for x in input().split()]
bus_dict[a[0]].append(a)

begin, end = input().split()
begin, end = int(begin), int(end)


def Dijkstra(bus_dict): # 시작 : [도착지, 비용]

d = {} # 가중치 딕셔너리 / {도착지: 최소비용}
for i in range(1, n+1):
if i == begin:
d[i] = 0
continue
d[i] = 10 ** 100 # 무한대
for i in bus_dict[begin]:
d[i[1]] = i[2]

i = 0
index = sorted(d.items(), key=lambda x: x[1])
while True:
if len(index) == i:
break

for j in bus_dict[index[i][0]]: # j 는 해당 인덱스로 시작하는 bus 리스트 / [4,5,3]
d[j[1]] = min(d[j[0]] + j[2], d[j[1]])

index = sorted(d.items(), key=lambda x: x[1])
i = i+1
return d[end]


print(Dijkstra(bus_dict))