일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- DB Navigator
- Greedy
- Modern Javascript
- react
- java
- React 훅 사용규칙
- BOJ2042
- Kruskal Algorithm
- codility
- 객체지향 설계 5원칙
- State
- 프로그래머스#JAVA
- 리액트 상태값 업데이트
- useContext
- heap
- Segment Tree
- 리액트 성능 최적화
- DFS
- Lifting State Up
- useState
- rest operator
- 섬 연결하기
- state update scheduling
- batch udpate
- JS Array Functions
- 프로그래머스
- MST구현
- 리액트의 작동방식
- useReducer
- spread operator
- Today
- Total
개발하는SM
[그래프] MST 구현 알고리즘 - Kruskal Algorithm 본문
MST란?
2021.03.13 - [Algorithm - 이론] - [그래프] 최소 신장 트리(MST, Minimum Spanning Tree)
Kruskal Algorithm
Kruskal Algorithm 은 간단히 말해 아래와 같다.
1. 그래프의 간선들을 가중치의 오름차순으로 정렬
2. 정렬된 간선 리스트를 앞에서부터 순서대로 탐색하면서, Cycle 을 형성하지 않는 경우만 선택함
3. 2에서 선택된 간선을 MST 의 집합에 추가함.
Cycle 판별하기
2번에서 선택된 간선이 Cycle 을 형성하는지 아닌지 판별하는 것이 핵심인데,
Cycle 이 형성되는지 아닌지는 'Union-Find 알고리즘' 을 이용한다.
- Union-Find
- Disjoint Set(서로소 집합)을 표현하는 자료구조
- 서로 다른 두 집합을 병합하는 Union 연산, 집합 원소가 어떤 집합에 속해있는지를 찾는 Find 연산으로 이뤄짐
2021.04.20 - [Algorithm - 이론] - Union-Find 알고리즘
Union-Find 알고리즘
Union-Find - Disjoint Set( 서로소 집합 자료구조 ) 을 표현하기 위해 사용하는 알고리즘 - 아래 3가지 연산을 이용하여 Disjoint Set 을 표현한다. Union-Find 연산 1. make-set(x) 초기화, 인자 x 를 원소..
developingsm.tistory.com
실제 문제 풀이를 통해 Kruskal Algorithm 을 구현해보자.
2021.03.13 - [Algorithm/Greedy] - [프로그래머스] 섬 연결하기
[프로그래머스] 섬 연결하기
programmers.co.kr/learn/courses/30/lessons/42861 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제 설명 n개의 섬 사이에 다리를 건설하는 비용(costs)이..
developingsm.tistory.com
References
https://gmlwjd9405.github.io/2018/08/29/algorithm-kruskal-mst.html
https://chanhuiseok.github.io/posts/algo-33/
'Algorithm - 이론' 카테고리의 다른 글
[트리] 세그먼트 트리 - 부분 합 효율적으로 구하기 (0) | 2021.08.22 |
---|---|
Union-Find 알고리즘 (0) | 2021.04.20 |
[그래프] 최소 신장 트리(MST, Minimum Spanning Tree) (0) | 2021.03.13 |