Notice
Recent Posts
Recent Comments
Link
๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก์ „์ฒด ๊ธ€ (1104)

KoreanFoodie's Study

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Linked List] : ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ŠคํŠธ๋ง ๋น„๊ต (Compare two strings represented as linked lists)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ŠคํŠธ๋ง ๋น„๊ต string ์„ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋กœ ํ‘œํ˜„ํ–ˆ๋‹ค๊ณ  ํ–ˆ์„๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ŠคํŠธ๋ง์„ ๋น„๊ตํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ๋‹จ, ํˆฌ ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆœํšŒํ•œ๋‹ค. #include #include #include struct Node { char data; Node* next; Node(char data) : data{data}, next{nullptr} {} }; struct List { List() : head{nullptr} {} void insert(cha..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Linked List] : ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ ์‚ฝ์ž… (Linked List insert in sorted way)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ ์ •๋ ฌ ์‚ฝ์ž… (Linked List insert in sorted way) ์ •๋ ฌ๋œ ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ์—์„œ, ์‚ฝ์ž…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? 1. ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด ์žˆ์„ ๊ฒฝ์šฐ ์‚ฝ์ž…๋˜๋Š” ๋…ธ๋“œ๋ฅผ ํ—ค๋“œ๋กœ ๋งŒ๋“ ๋‹ค. 2. ์›์†Œ๊ฐ€ ํ•˜๋‚˜์ผ ๊ฒฝ์šฐ, ์‚ฝ์ž…๋˜๋Š” ๋…ธ๋“œ๋ฅผ ํ—ค๋“œ๋กœ ๋งŒ๋“ค๊ณ  ๊ธฐ์กด ํ—ค๋“œ์™€ ์—ฐ๊ฒฐํ•œ๋‹ค. 3. ์›์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ, ์ˆœํšŒ๋ฅผ ํ•˜๋ฉฐ ์•Œ๋งž์€ ์œ„์น˜์— ๋ผ์›Œ ๋„ฃ๋Š”๋‹ค. #include #include #include struct Node {..

๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ - ์Šค์œ„์น˜์™€ ๋ผ์šฐํ„ฐ

๋„คํŠธ์›Œํฌ์˜ ๊ตฌ์„ฑ ๋„คํŠธ์›Œํฌ๋Š” LAN ๊ณผ WAN ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. LAN ์€ ๋กœ์ปฌ ์˜์—ญ ๋„คํŠธ์›Œํฌ์ด๊ณ , LAN ๊ณผ LAN ์„ ์ž‡๋Š” ๊ฒƒ์„ WAN ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ณดํ†ต LAN ๊ณผ LAN ์‚ฌ์ด๋Š” ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•ด ์—ฐ๊ฒฐํ•œ๋‹ค. ์Šค์œ„์น˜์™€ ๋ผ์šฐํ„ฐ ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ์Šค์œ„์น˜์™€ ๋ผ์šฐํ„ฐ์—์„œ ๋‚˜์˜จ๋‹ค. ์Šค์œ„์น˜์™€ ๋ผ์šฐํ„ฐ๋Š” ๋‘˜ ๋‹ค ์Šค์œ„์นญ(ํ†ต์‹ ์„ ์—ฐ๊ฒฐ๋œ ํฌํŠธ๋กœ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ์—ญํ• )์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ๊ฐ€์žฅ ํฐ ์ฐจ์ด๋Š”, ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์„ ๋ง‰๋А๋ƒ ๋ง‰์ง€ ์•Š๋А๋ƒ์˜ ์ฐจ์ด์ด๋‹ค. ์Šค์œ„์น˜๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋ผ์šฐํ„ฐ๋Š” ์ด๋ฅผ ์ฐจ๋‹จํ•œ๋‹ค. ์ฆ‰, ์Šค์œ„์น˜๋Š” ๊ฐ™์€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฌถ์–ด์ฃผ๊ณ , ๋ผ์šฐํ„ฐ๋Š” ๋„คํŠธ์›Œํฌ ์ง‘ํ•ฉ์„ ๋ถ„๋ฆฌ์‹œ์ผœ์ค€๋‹ค๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ „ ์„ธ๊ณ„์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์Šค์œ„์น˜๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํŒจํ‚ท์„ ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ… ํ•  ๋•Œ ์ „์„ธ๊ณ„์˜ ๋ชจ๋“  ์ปดํ“จํ„ฐ์— ๋Œ€ํ•ด ..

Cloud, Web 2022. 1. 24. 13:31
๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ๋‹จ์ ˆ์„  (Articulation Edge)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹จ์ ˆ์„  (Articulation Edge) ๋‹จ์ ˆ์ ๊ณผ ๋‹จ์ ˆ์„ ์€ ๋น„์Šทํ•œ ์›๋ฆฌ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. DFS ๋ฅผ ํ†ตํ•ด ๋ฐฉ๋ฌธ ๋…ธ๋“œ์˜ ์ˆœ์„œ์™€, ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•œ ์ž์‹ ๋…ธ๋“œ๋“ค์—์„œ ๊ฐ€์žฅ ๋จผ์ € ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ์˜ ์ˆœ์„œ(์ตœ์ € ๋ฐฉ๋ฌธ ์ˆœ์„œ)๋ฅผ ์ €์žฅํ•œ๋‹ค. ๊ทธ ํ›„, ํ•ด๋‹น ๋…ธ๋“œ์˜ ์ตœ์ € ๋ฐฉ๋ฌธ ๊ฐ€๋Šฅ ์ˆœ์„œ๊ฐ€ ์ธ์ ‘ ๋…ธ๋“œ์˜ ๋ฐฉ๋ฌธ ์ˆœ์„œ๋ณด๋‹ค ํด ๊ฒฝ์šฐ(์ฆ‰, DFS ๋ฐฉ์‹์œผ๋กœ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ณผ์ •์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ) ํ•ด๋‹น ์—ฃ์ง€๋Š” ๋‹จ์ ˆ์„ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฝ”๋“œ๋Š” GeeksForG..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : Boggle (Array Board ์—์„œ ๋‹จ์–ด ์ฐพ๊ธฐ)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. Boggle : Find all possible words in a board of characters ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณด๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„๋•Œ, Dictionary์—์„œ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋‹จ์–ด๋ฅผ ๋ณด๋“œ๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์งœ ๋ณด์ž. ์ธํ’‹๊ณผ ์•„์›ƒํ’‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ œ์•ฝ ์กฐ๊ฑด์€, ๋ณด๋“œ์—์„œ ์ƒํ•˜์ขŒ์šฐ + ๋Œ€๊ฐ์„  ์ด 8๊ฐ€์ง€ ๋ฐฉํ–ฅ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๊ณผ, ๋ณด๋“œ ์œ„์˜ ๋ฌธ์ž๋ฅผ ์ค‘๋ณตํ•ด์„œ ๋ฐฉ๋ฌธํ•˜๋Š” ๊ฒƒ์€ ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹น ํ•จ์ˆ˜๋Š” DFS ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค...

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ์œ„์ƒ์ •๋ ฌ (Topological Sort)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์œ„์ƒ์ •๋ ฌ (Topological Sort) ์œ„์ƒ์ •๋ ฌ์€ ์œ ํ–ฅ ๊ทธ๋ž˜ํ”„ (DAG, Directed Acyclic Graph) ์—์„œ ์„ ํ›„๊ด€๊ณ„๋ฅผ ๊ณ ๋ คํ•œ ์ •๋ ฌ ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰, A -> B ์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ๋‹ค๊ณ  ํ–ˆ์„๋•Œ, ์œ„์ƒ์ •๋ ฌ์„ ํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ A ๊ฐ€ B ๋ณด๋‹ค ๋จผ์ € ์ถœ๋ ฅ๋œ๋‹ค. ์œ„์ƒ์ •๋ ฌ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Incoming Edge ์˜ ๊ฐ’์ด 0 ์ธ ๋…€์„๋“ค๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ถ”์ถœํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค. ํŠน์ • Vertex ๋ฅผ ์ถ”์ถœํ•˜๋ฉด ํ•ด๋‹น Vertex ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” Vertex ์˜ Incoming Edge..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ํฌ๋ฃจ์Šค์นผ (Kruskal - Minimum Spanning Tree)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Kruskal - Minimum Spanning Tree) ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋‹ค๋งŒ ์›๋ฆฌ๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. ๋จผ์ €, ๋ชจ๋“  Vertex ๋“ค์„ ๋ณ„๋„์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“ ๋‹ค. ๊ทธ ํ›„, ๋ชจ๋“  ์—ฃ์ง€๋“ค์„ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ๊ณ , ์ตœ์†Œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฐ€์ง„ ๋…€์„๋“ค๋ถ€ํ„ฐ ๊บผ๋‚ด ๋‘ Vertex ๋ฅผ ์ด์–ด์ค€๋‹ค. ์ด๋•Œ, ๊ฐ™์€ ์ง‘ํ•ฉ์ธ ๊ฒฝ์šฐ๋Š” ์—ฐ๊ฒฐํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ง‘ํ•ฉ์ด ๊ฐ™์€์ง€๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ๊ฒƒ์€ Union-Find ๋ฅผ ์ด์šฉํ•ด ๊ฒ€์‚ฌํ•œ๋‹ค...

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ํ”„๋ฆผ (Prim - Minimum Spanning Tree)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ) ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Greedy ํ•œ ๋ฐฉ์‹์œผ๋กœ Vertex ๋“ค์„ ์ด์–ด ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” : ํ•ด๋‹น ์ •์ ์˜ ์ง‘ํ•ฉ ๋Œ€ํ•ด, ์—ฐ๊ฒฐ๋œ {๊ฐ„์„ , ์ •์ } ์Œ์„ ์ •์  ๊ฐ€์ค‘์น˜ ๊ธฐ์ค€์œผ๋กœ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ค‘์น˜๊ฐ€ ๊ธฐ์กด์˜ ๊ฐ€์ค‘์น˜๋ณด๋‹ค ์ž‘์œผ๋ฉด์„œ, ๋„์ฐฉ ์ง€์ ์ด ๋ฏธ๋ฐฉ๋ฌธ์ธ ๋…ธ๋“œ๋ฅผ ์ง‘ํ•ฉ์— ๋„ฃ๊ณ , ์ถ”๊ฐ€๋œ ๋…ธ๋“œ์˜ {๊ฐ„์„ , ์ •์ } ์Œ๋“ค์„ ๋‹ค์‹œ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ๋Š”๋‹ค. ํ•ด๋‹น ์ž‘์—…์„ ๋ชจ๋“  Vertex ๋ฅผ ์ˆœํšŒํ•  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋ฉด ๋œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š”..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ / ์‚ฌ์ดํด ์ฐพ๊ธฐ (Union-Find / Cycle Detection)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ / ์‚ฌ์ดํด ์ฐพ๊ธฐ (Union-Find / Cycle Detection) ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋Š”, disjoint set ๋“ค์„ ํ•ฉ์ณ์„œ ๊ฐ vertex ๋“ค์ด ๊ฐ™์€ ์ง‘ํ•ฉ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋ณ„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. parent ๋ฐฐ์—ด์— ๊ฐ vertex ์˜ ์กฐ์ƒ(root node) ์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ , find, union ๋“ฑ์˜ ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ์ง‘ํ•ฉ์„ ํ•ฉ์นœ๋‹ค. find ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ, ์žฌ๊ท€์ ์œผ๋กœ ๊ฒฝ๋กœ ํƒ์ƒ‰ ๋„์ค‘ ๋งŒ๋‚œ vertex ๋“ค์ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ..