최소 신장 트리(MST)

2025. 8. 31. 15:14·coding test/Algorithm

신장 트리 (Spanning Tree)

n개의 정점으로 이루어진 무향 그래프에서 n개의 정점과 n-1개의 간선으로 이루어진 트리

최소 신장 트리 (Minimum Spanning Tree)

무향 가중치 그래프에서 신장 트리를 구성하는 간선들의 가중치의 합이 최소인 신장 트리

그래프에서 최소 비용 문제

KRUSKAL 알고리즘

# Union-Find 알고리즘

가중치가 작은 간선을 차례대로 선택하여 MST를 구성하는 알고리즘

  1. 그래프의 모든 간선을 가중치 기준으로 오름차순 정렬
  2. 가중치가 가장 낮은 간선부터 하나씩 확인
    1. 해당 간선이 연결하는 두 정점의 대표자가 다르다면 → 사이클이 생기지 않으므로 MST 집합에 추가
    2. 두 정점의 대표자가 같다면 → 사이클이 생기므로 간선을 무시
  3. 모든 정점이 연결될 때까지 위 과정을 반복

PRIM 알고리즘

# Priority queue

하나의 정점에서 시작하여, 연결된 간선 중 가장 작은 가중치를 가진 간선을 선택해 나가며 MST를 만들어가는 알고리즘

  1. 임의의 정점을 선택하여 시작
  2. 선택된 정점에서 나가는 간선들을 우선순위 큐에 넣고, 가장 가중치가 작은 간선을 선택
  3. 선택한 간선이 연결하는 정점이 아직 방문하지 않은 정점이라면 → 그 간선을 MST에 추가하고 해당 정점을 방문 처리
  4. 새로 방문한 정점에서 나가는 간선들을 다시 우선순위 큐에 추가
  5. 우선순위 큐가 빌 때까지 반복

'coding test > Algorithm' 카테고리의 다른 글

최소 공통 조상 (LCA, Lowest Common Ancestor)  (0) 2025.12.12
최단 경로  (1) 2025.08.31
Dynamic Programming - 기초  (0) 2025.05.17
'coding test/Algorithm' 카테고리의 다른 글
  • 최소 공통 조상 (LCA, Lowest Common Ancestor)
  • 최단 경로
  • Dynamic Programming - 기초
wish404
wish404
자동 로그
  • wish404
    wish-log
    wish404
    • 홈
    • 태그
    • 방명록
    • github
    • 분류 전체보기 (75)
      • log (8)
        • 블로그 관리 (5)
        • 에러 모음 (2)
      • coding test (47)
        • Algorithm (4)
        • Baekjoon (34)
        • SW Expert Academy (6)
        • etc (3)
      • 프로그래밍 언어 (7)
        • JAVA (7)
      • 데이터 엔지니어링 (5)
        • Kafka (0)
        • Spark (4)
        • Airflow (1)
        • Elasticsearch (0)
      • 머신러닝&딥러닝 (3)
        • Kaggle 스터디 (3)
        • 논문 리뷰 (0)
        • MLOps (0)
      • 신입 개발자가 되기까지 (5)
        • 취준일기 (1)
        • SSAFY (2)
        • 프로젝트 (1)
        • CS 공부 (1)
  • 인기 글

  • 태그

    중위순회
    벨만포드
    다익스트라
    그리디 알고리즘
    heapq
    후위순회
    dijk
    dfs
    SSAFY
    Dijkstra
    dp
    BFS
    플로이드워샬
    그리디
    복습
    전위순회
    최단 경로
    틀린문제
    싸피
    복습해야지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
wish404
최소 신장 트리(MST)
상단으로

티스토리툴바