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

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

KoreanFoodie's Study

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [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 ๋“ค์ด ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : Floyd-Warshall (ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ - ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์Œ)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. Floyd-Warshall (ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ - ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์Œ) ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ(Floyd-Warshall) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ์ •์ ๋“ค์— ๋Œ€ํ•œ ์ตœ์†Œ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์›๋ฆฌ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ๋ฐ, ์‹œ์ž‘์ง€์  i, ๋„์ฐฉ์ง€์  j ์˜ ๊ฑฐ๋ฆฌ ์Œ์„ ์ค‘๊ฐ„ ๊ฒฝ์œ ์ง€ k ๋ฅผ ์ง€๋‚˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ๊ณ„์† relaxation ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” (O^3) ์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. #include #include #define V 4 #define INF1000000 i..

๊ธฐ์ˆ ๋ฉด์ ‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜ [Graph] : ๋‹ค์ต์ŠคํŠธ๋ผ (์ตœ๋‹จ ๊ฒฝ๋กœ)

๊ธฐ์ˆ ๋ฉด์ ‘๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ์œ„ํ•ด ๊ผญ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ดˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ ๊ฐœ๋…๋“ค๊ณผ ์ฝ”๋“œ๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์ œ๋“ค์€ GeeksForGeeks ์˜ Top 10 algorithms in Interview Questions ๊ธ€์—์„œ ๋ฐœ์ทŒํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ (์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜) ๋‹ค์ต์ŠคํŠธ๋ผ๋Š” ์ฃผ์–ด์ง„ ์‹œ์ž‘ ์ง€์ ์—์„œ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ, ์–‘์˜ ๊ฐ€์ค‘์น˜ ๊ฐ„์„ ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๊ทธ๋ž˜ํ”„์ผ ๊ฒฝ์šฐ์— ํ•œ ์ง€์ ์—์„œ ํŠน์ • ์ง€์ ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. Naive ํ•˜๊ฒŒ ๋ชจ๋“  ์ •์ ๋“ค์„ ์ฒดํฌํ•˜๋ฉฐ, ๊ฑฐ๋ฆฌ๊ฐ’์„ relaxation ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(V^2) ๊ฐ€ ๋‚˜์˜จ๋‹ค. (dijkstra_slow ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„) Priority_Queue ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์†Œ ๊ฑฐ๋ฆฌ์˜ ์ •์ ์„ Heapify ํ•ด์ค„ ๊ฒฝ์šฐ, ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ..