Graph4 [MST] ์ต์ ์คํจ๋ ํธ๋ฆฌ - ํฌ๋ฃจ์ค์นผ(Kruskal), ํ๋ฆผ(Prim) MST๋? ์ต์ ์ ์ฅ ํธ๋ฆฌ(Minimum Spanning Tree)๋ก ๊ฐ์ค ๊ทธ๋ํ(Weight Graph)์์ ๊ฐ์ฅ ์ ์ ๋น์ฉ(Weight)์ผ๋ก ๋ชจ๋ ์ ์ (Vertex)์ผ๋ก ์ด๋ํ ์ ์๋ ๋ถ๋ถ ๊ทธ๋ํ(Sub Graph)์ด๋ค. MST๋ ๊ฐ ์ ์ ์์ ์ ์ ์ฌ์ด์ ํ๋์ ๊ฐ์ (Edge)๋ง ํ์ํ๋ฏ๋ก ์ด N-1 ๊ฐ์ ๊ฐ์ ์ ๊ฐ์ง๊ฒ ๋๋ฏ๋ก ๋ง์น ํธ๋ฆฌ์ ํํ๋ฅผ ํ๊ณ ์์ด์ ํธ๋ฆฌ๋ผ๋ ์ด๋ฆ์ด ๋ถ๋๋ค.ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ 1. ๋ชจ๋ ๊ฐ์ ์ ๋น์ฉ์ด ์ ์ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค. - Sort2. ๊ฐ์ ์ ๋ถ์ ์ ์ u์ v๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถ๋ชจ๋ฅผ ์ฐพ๋๋ค. - Find3. ์ ์ u์ ๋ถ๋ชจ์ ์ ์ v์ ๋ถ๋ชจ๊ฐ ๋ค๋ฅด๋ค๋ฉด ์๋ก ๋ค๋ฅธ ์งํฉ์ ์ํด์์ง๋ง, 1๋ฒ ๊ณผ์ ์ผ๋ก ์ธํด ํด๋น ๊ฐ์ ์ด ๋ ์ ์ ์ ์ต์ ๋น์ฉ์ ๊ฐ์ ์์ ์ ์ ์์ผ๋ฏ๋ก ํ๋์.. 2024. 7. 11. ๋ฐฑ์ค - [BOJ 22856] ํธ๋ฆฌ ์ํ ๋ฌธ์ ๋ ธ๋๊ฐ N๊ฐ์ธ ์ด์ง ํธ๋ฆฌ๊ฐ ์๋ค. ํธ๋ฆฌ๋ฅผ ์ค์ ์ํ์ ์ ์ฌํ๊ฒ ์ํํ๋ ค๊ณ ํ๋ค. ์ด๋ฅผ ์ ์ฌ ์ค์ ์ํ๋ผ๊ณ ํ์.์ํ์ ์์์ ํธ๋ฆฌ์ ๋ฃจํธ์ด๊ณ ์ํ์ ๋์ ์ค์ ์ํํ ๋ ๋ง์ง๋ง ๋ ธ๋์ด๋ค. ์ด๋ ๋ฃจํธ ๋ ธ๋๋ ํญ์ 1๋ฒ ๋ ธ๋์ด๋ค.์ ์ฌ ์ค์ ์ํ๋ ๋ฃจํธ ๋ ธ๋์์ ์์ํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ์งํ๋๋ค.ํ์ฌ ์์นํ ๋ ธ๋์ ์ผ์ชฝ ์์ ๋ ธ๋๊ฐ ์กด์ฌํ๊ณ ์์ง ๋ฐฉ๋ฌธํ์ง ์์๋ค๋ฉด, ์ผ์ชฝ ์์ ๋ ธ๋๋ก ์ด๋ํ๋ค.๊ทธ๋ ์ง ์๊ณ ํ์ฌ ์์นํ ๋ ธ๋์ ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๊ฐ ์กด์ฌํ๊ณ ์์ง ๋ฐฉ๋ฌธํ์ง ์์๋ค๋ฉด, ์ค๋ฅธ์ชฝ ์์ ๋ ธ๋๋ก ์ด๋ํ๋ค.๊ทธ๋ ์ง ์๊ณ ํ์ฌ ๋ ธ๋๊ฐ ์ ์ฌ ์ค์ ์ํ์ ๋์ด๋ผ๋ฉด, ์ ์ฌ ์ค์ ์ํ๋ฅผ ์ข ๋ฃํ๋ค.๊ทธ๋ ์ง ์๊ณ ๋ถ๋ชจ ๋ ธ๋๊ฐ ์กด์ฌํ๋ค๋ฉด, ๋ถ๋ชจ ๋ ธ๋๋ก ์ด๋ํ๋ค.์ ์ฌ ์ค์ ์ํ๋ฅผ ์ข ๋ฃํ ๋๊น์ง 1 ~ 4๋ฅผ ๋ฐ๋ณตํ๋ค.์ ๊ทธ๋ฆผ์ ์.. 2024. 7. 8. [Java] Tree ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ : Tree, Binary Tree, Binary Serach Tree, Balanced Binary Serach Tree, Heap, Trie์ด๋ฒ ํฌ์คํธ์์๋ ๊ธฐ๋ณธ์ ์ธ Tree์ ๋ํด์๋ง ์์ฑํด๋ณด์. Tree๋ ? Node์ Edge๋ก ๊ตฌ์ฑ๋ ๋ฐฉํฅ์ด ์กด์ฌํ๋ ๋น์ํ Graph์ ํ ์ข ๋ฅ์ด๋ค. ๊ทธ๋์ DAG(Directed Acyclic Graphs)๋ผ๊ณ ๋ ํ๋ค.๊ทธ๋ผ Graph๋ก ๋ถ๋ฅํ๋ฉด ๋์ง ์ Tree๋๋ ์์ฌ์ ํ๊ฒ ๋๋ค.Tree๋ Graph์์ ๋ช๊ฐ์ง ํน์ฑ์ ๋ ๊ฐ์ง๋ค. 1. ๋ฃจํธ ๋ ธ๋๊ฐ ํ๋ ์กด์ฌํ๋ค.2. ๋ถ๋ชจ ๋ ธ๋๋ ํ๋๋ฐ์ ์กด์ฌํ์ง ์๋๋ค.3. ๋ ธ๋๋ 0๊ฐ ์ด์์ ์์์ ๊ฐ์ง๊ณ ์๋ค.4. ์์์ด 0๊ฐ์ธ ๊ฒฝ์ฐ ๋จ๋ง๋ ธ๋(Leaf Node)๋ผ๊ณ ํ๋ค.5.. ์ ํน์ฑ์ ์งํค๋ .. 2024. 7. 7. [์ต๋จ๊ฒฝ๋ก] Bellman-Ford Algorithm ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆpackage com.study.datastructrue.mst;import java.util.ArrayList;import java.util.Arrays;class Pair { T node; V cost; public Pair(T node, V cost) { this.node = node; this.cost = cost; }}public class BellmanFord { static long[] dist = new long[6]; public static void main(String[] args) { // ์ง 1, ํ๊ต 2, ๋ฐ๋ฌผ๊ด 3, ์ํ๊ด 4, ๋งํธ 5 ArrayList>> graph = inpu.. 2024. 7. 6. ์ด์ 1 ๋ค์