Menu
Coddy logo textTech

Pseudo Code

Coddy의 벨만-포드 알고리즘 - 그래프 알고리즘 코스 레슨 — 9개 중 4번째.

bellmanFord(n, edges, source):
   dist = [INF, INF, ...]; dist[source] = 0
   repeat (n - 1) times:
      for each edge (u -> v, weight w):
         if dist[u] != INF and dist[u] + w < dist[v]:
            dist[v] = dist[u] + w
   replace every remaining INF with -1
   return dist

// 음수 사이클: n-1번의 패스 후에, 만약 어떤 간선이 여전히 완화(relax)된다면,
// 음수 사이클이 존재합니다.
  • 가드 조건인 dist[u] != INF는 도달할 수 없는 정점으로부터 경로가 생성되는 것을 방지합니다.
  • 전체 간선 리스트를 완화하는 것이 하나의 패스(pass)입니다. 벨만-포드 알고리즘은 이 패스를 n - 1번 반복하는 것입니다.

직접 해보기

이 레슨에는 코드 챌린지가 없습니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

벨만-포드 알고리즘 - 그래프 알고리즘의 모든 레슨