벨만 포드 최단 경로 알고리즘은 다익스트라 알고리즘과 유사하지만,
벨만 포드 최단 경로 알고리즘은 음의 간선이 포함된 상황에서도 사용할 수 있다.
-벨만 포드 알고리즘 동작과정
1. 출발 노드 설정
2. 최단 거리 테이블을 초기화
3. 다음의 과정을 N - 1 번 반복
1) 전체 간선 E개를 하나씩 확인
2) 각 간선을 거쳐 다른 노드로 가는 비용을 계산 하여 최단 거리 테이블 갱신
위 예시를 벨만 포드 알고리즘으로 구현 한다면
노드와 간선의 정보와 정보를 입력받을 변수 호출 하고
이때 시간초과를 하지않기 위해 import sys 로 sys 라이브러리를 호출.
(동작과정 2번 포함)
먼저 시작 노드의 거리 값을 0으로 설정한다. (동작과정 1번)
for i in range(n) (동작과정 3번)
for j in range(m) (동작 과정 3-1 번)
최단거리 설정을 위한 cur, next_node, cost 변수 초기화
if dist~~ (동작과정 3-2번)
벨만 포드 알고리즘을 수행 (시작 값 1)
음수 순환이 존재한다면 -1 을 출력 하고
아니면 2번째부터 n 번째 값을 출력 이때 dist[i]로 갈 수 없다면 -1출력
위 예시의 입력 값 을 넣어준다면 아래의 출력 값 이 출력 된다.