0Pricing
Coding Interview Prep · 강의

크루스칼의 최소 신장 트리

사이클 없이 가장 저렴한 간선을 추가합니다

크루스칼의 최소 신장 트리은(는) CoddyKit의 무료 Coding Interview Prep 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Coding Interview Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

MST란 무엇인가

최소 신장 트리는 사이클 없이 전체 간선 가중치의 합을 최소화하면서 모든 정점을 연결합니다. 가장 적은 비용으로 마을에 전선을 연결한다고 생각해 보십시오. 🌲

크루스칼의 핵심 아이디어

크루스칼 알고리즘은 철저한 탐욕적 접근법을 사용합니다. 사이클을 만들지 않는 가장 저렴한 간선을 계속 추가하여 전체 그래프가 연결될 때까지 진행합니다.

첫 번째 단계: 간선 정렬

먼저 모든 간선을 가중치 기준으로 가장 작은 것부터 sort합니다. 저렴한 간선을 우선하는 탐욕적 선택이 최종 합을 최소로 만듭니다.

edges.sort()  # (weight, u, v)

DSU가 완벽하게 맞는 이유

간선을 추가했을 때 양 끝점이 이미 연결되어 있는 경우에만 사이클이 생깁니다. DSU는 이 연결성 검사를 거의 상수 시간에 수행합니다. 🤝

정렬된 간선 살펴보기

간선을 가장 저렴한 것부터 가장 비싼 것까지 차례로 살펴보십시오. 각 간선에 대해 양 끝점이 DSU에서 이미 같은 루트를 공유하는지 확인합니다.

for w, u, v in edges:
    ru, rv = find(u), find(v)

선택하거나 거부하기

루트가 다르면 간선이 서로 다른 두 부분을 연결하므로 해당 간선을 선택하고 둘을 합칩니다. 루트가 같으면 사이클을 피하기 위해 건너뜁니다.

if ru != rv:
    union(u, v)
    total += w

멈출 시점 알기

n개의 정점을 가진 신장 트리는 정확히 n - 1개의 간선을 가집니다. 그만큼의 간선을 선택했다면 일찍 멈출 수 있습니다.

연결 끊김 감지

모든 간선을 살펴본 뒤 선택한 간선이 n - 1개보다 적다면 그래프는 연결되지 않은 상태이며 신장 트리가 존재하지 않습니다.

시간 비용

정렬이 대부분의 시간을 차지하므로 크루스칼 알고리즘은 O(E log E)에 실행됩니다. DSU 연산은 매우 저렴해서 전체 시간에 거의 영향을 주지 않습니다.

탐욕적 선택이 올바른 이유

절단 성질은 어떤 분할을 가로지르는 가장 가벼운 간선은 추가해도 안전하다고 보장합니다. 이것이 가장 저렴한 간선부터 선택해도 잘못되지 않는 이유입니다.

크루스칼을 선택할 때

크루스칼 알고리즘은 간선 목록으로 주어지는 희소 그래프에서 특히 빛납니다. 대부분의 대회 문제는 이 형식으로 그래프를 직접 제공합니다. ⚡

빠른 확인

크루스칼 알고리즘이 간선을 거부하게 만드는 조건을 판단해 보십시오.

복습

크루스칼의 MST를 만들었습니다. 간선을 정렬하고, DSU를 이용해 두 컴포넌트를 연결하는 가장 저렴한 간선을 추가한 뒤 n - 1개의 간선에서 멈춥니다. 🎉

자주 묻는 질문

“크루스칼의 최소 신장 트리” 강의는 무료인가요?

네 — “크루스칼의 최소 신장 트리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Coding Interview Prep 강의 전체를 잠금 해제할 수 있습니다. Coding Interview Prep 강의에는 총 4개의 강의가 포함되어 있습니다.

“크루스칼의 최소 신장 트리”에서 뭘 배우나요?

사이클 없이 가장 저렴한 간선을 추가합니다 브라우저에서 직접 실행하는 실습 코드로 Coding Interview Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Coding Interview Prep을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Coding Interview Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“크루스칼의 최소 신장 트리” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Coding Interview Prep 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Coding Interview Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 경로 압축을 적용한 DSU
  2. 랭크에 따른 합치기와 구성 요소
  3. 크루스칼의 최소 신장 트리
  4. 힙을 이용한 프림의 MST
← Coding Interview Prep(으)로 돌아가기