๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์•Œ๊ณ ๋ฆฌ์ฆ˜/์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜3

[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.
[์ตœ๋‹จ๊ฒฝ๋กœ] 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.
[์ด๋ถ„ ํƒ์ƒ‰] ์ด๋ถ„ ํƒ์ƒ‰(Binary Search) ์ด๋ž€ ? ์ด๋ถ„ ํƒ์ƒ‰ ๋‘ ์ด, ๋‚˜๋ˆŒ ๋ถ„์„ ์จ์„œ ์ด๋ถ„์ธ๊ฐ€? ์ •๋‹ต, ์ด๋ถ„ ํƒ์ƒ‰์€ ๋‘๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์„œ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 1๋ถ€ํ„ฐ 10๊นŒ์ง€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž. {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} ์šฐ๋ฆฌ๊ฐ€ 8์„ ์ฐพ์„ ๋•Œ, ๋ˆˆ์œผ๋กœ ๋ฐ”๋กœ ๋ณด์ด๋‹ˆ๊นŒ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ช‡ ๋ฒˆ์งธ์— ์žˆ๋Š”๊ฐ€? ๋ฐฐ์—ด์€ 0๋ฒˆ์งธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋‹ˆ 7๋ฒˆ์งธ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ปดํ“จํ„ฐ ๋ฐฐ์—ด ์ธ๋ฑ์Šค ๊ฐœ๋…์ด ์—†๋Š” ์‚ฌ๋žŒ๋“ค์€ 8๋ฒˆ์งธ๋ผ๊ณ  ๋‹ตํ•  ๊ฒƒ์ด๋‹ค. ์ฆ‰, O(1) ์‹œ๊ฐ„์ด๋‹ค. ๊ทธ๋Ÿผ, {1, 4, 7, 10, 12, 23, 30, 35, 100, 120} ์ด ์žˆ์„ ๋•Œ, 35์˜ ์œ„์น˜๋Š”? ์šฐ๋ฆฌ๋Š” ์•ž์—์„œ ๊ฐ’์„ ์„ธ์–ด๊ฐ€๋ฉด์„œ ๋ช‡ ๋ฒˆ์งธ์— ์žˆ๋Š”์ง€ ์•Œ ๊ฒƒ์ด๋‹ค. ์ฆ‰, O(N) ์‹œ๊ฐ„์ด๋‹ค. 100๋งŒ๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด? ์šฐ๋ฆฌ๋Š” 100๋งŒ๊ฐœ๋ฅผ ์ผ์ผ์ด ์„ธ๋‹ค๊ฐ€.. 2024. 2. 1.