Menu
Coddy logo textTech

Pseudo Code

Coddy의 크루스칼 알고리즘 - 그래프 알고리즘 코스 레슨 — 9개 중 4번째.

kruskal(n, edges):
   parent[i] = i for all i          # 각 정점은 자신만의 집합을 가짐
   total = 0
   repeat until all edges considered:
      pick the unused edge (u, v, w) with the smallest w
      ru = find(u); rv = find(v)
      if ru != rv:                   # 사이클 없음
         parent[ru] = rv             # 합치기(union)
         total += w
   return total

find(x):
   while parent[x] != x: x = parent[x]
   return x
  • 매 라운드마다 사용되지 않은 가장 작은 간선을 선택하는 방식(최소 선택)은 별도의 정렬이 필요하지 않게 해줍니다.
  • find는 루트까지 거슬러 올라가며, union은 한 루트를 다른 루트에 할당하는 단일 작업입니다.

직접 해보기

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

quiz icon실력 점검

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

크루스칼 알고리즘 - 그래프 알고리즘의 모든 레슨