๋ชฉ๋ก์ ์ฒด ๊ธ (1104)
KoreanFoodie's Study

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ 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..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. ๋ ธ๋ ์ญ์ (Linked List Node deletion) Singly Linked List ์์ ๋ ธ๋๋ฅผ ์ญ์ ํ ๋๋, ๊ฐ๋จํ๊ฒ ์ด์ ๋ ธ๋์ ๋ค์ ๋ ธ๋๋ฅผ ํ์ฌ ๋ ธ๋์ ๋ค์ ๋ ธ๋์ ์ฐ๊ฒฐ์์ผ์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค(prev->next = cur->next). ํน์, prev ๋ ธ๋ ํ๋๋ฅผ ์ด์ฉํด๋ ๋๋ค(prev->next = prev->next->next). void delete_node(int x) { if (!head) { std::cout data == x) { head ..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ 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 ์ฌ์ด๋ ๋ผ์ฐํฐ๋ฅผ ์ด์ฉํด ์ฐ๊ฒฐํ๋ค. ์ค์์น์ ๋ผ์ฐํฐ ๋คํธ์ํฌ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์ค์์น์ ๋ผ์ฐํฐ์์ ๋์จ๋ค. ์ค์์น์ ๋ผ์ฐํฐ๋ ๋ ๋ค ์ค์์นญ(ํต์ ์ ์ฐ๊ฒฐ๋ ํฌํธ๋ก ์ฐ๊ฒฐํด ์ฃผ๋ ์ญํ )์ ์ํํ์ง๋ง, ๊ฐ์ฅ ํฐ ์ฐจ์ด๋, ๋ธ๋ก๋์บ์คํ ์ ๋ง๋๋ ๋ง์ง ์๋๋์ ์ฐจ์ด์ด๋ค. ์ค์์น๋ ๋ธ๋ก๋์บ์คํ ์ ์ํํ๊ณ , ๋ผ์ฐํฐ๋ ์ด๋ฅผ ์ฐจ๋จํ๋ค. ์ฆ, ์ค์์น๋ ๊ฐ์ ๋คํธ์ํฌ๋ฅผ ๋ฌถ์ด์ฃผ๊ณ , ๋ผ์ฐํฐ๋ ๋คํธ์ํฌ ์งํฉ์ ๋ถ๋ฆฌ์์ผ์ค๋ค๊ณ ์ดํดํ ์ ์๋ค. ์ฆ, ์ ์ธ๊ณ์ ๋คํธ์ํฌ๋ฅผ ์ค์์น๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ์๋ํ๋ฉด ํจํท์ ๋ธ๋ก๋์บ์คํ ํ ๋ ์ ์ธ๊ณ์ ๋ชจ๋ ์ปดํจํฐ์ ๋ํด ..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. ๋จ์ ์ (Articulation Edge) ๋จ์ ์ ๊ณผ ๋จ์ ์ ์ ๋น์ทํ ์๋ฆฌ๋ก ๊ตฌํ ์ ์๋ค. DFS ๋ฅผ ํตํด ๋ฐฉ๋ฌธ ๋ ธ๋์ ์์์, ํด๋น ๋ ธ๋๋ฅผ ํฌํจํ ์์ ๋ ธ๋๋ค์์ ๊ฐ์ฅ ๋จผ์ ๋ฐฉ๋ฌธํ ๋ ธ๋์ ์์(์ต์ ๋ฐฉ๋ฌธ ์์)๋ฅผ ์ ์ฅํ๋ค. ๊ทธ ํ, ํด๋น ๋ ธ๋์ ์ต์ ๋ฐฉ๋ฌธ ๊ฐ๋ฅ ์์๊ฐ ์ธ์ ๋ ธ๋์ ๋ฐฉ๋ฌธ ์์๋ณด๋ค ํด ๊ฒฝ์ฐ(์ฆ, DFS ๋ฐฉ์์ผ๋ก ํด๋น ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๋ ๊ณผ์ ์์ ๋ค๋ฅธ ๋ ธ๋์์ ํด๋น ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ์ ์๋ ๊ฒฝ์ฐ) ํด๋น ์ฃ์ง๋ ๋จ์ ์ ์ด๋ผ๊ณ ํ ์ ์๋ค. ์ฝ๋๋ GeeksForG..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. Boggle : Find all possible words in a board of characters ๋ค์๊ณผ ๊ฐ์ ๋ณด๋๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์๋, Dictionary์์ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋จ์ด๋ฅผ ๋ณด๋๋ฅผ ํตํด ๋ง๋ค ์ ์๋์ง ์๋์ง ํ์ธํ๋ ์ฝ๋๋ฅผ ์ง ๋ณด์. ์ธํ๊ณผ ์์ํ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ ์ฝ ์กฐ๊ฑด์, ๋ณด๋์์ ์ํ์ข์ฐ + ๋๊ฐ์ ์ด 8๊ฐ์ง ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ์ ์๋ค๋ ๊ฒ๊ณผ, ๋ณด๋ ์์ ๋ฌธ์๋ฅผ ์ค๋ณตํด์ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ์๋๋ค๋ ๊ฒ์ด๋ค. ํด๋น ํจ์๋ DFS ๋ฐฉ์์ผ๋ก ๊ตฌํํด์ผ ํ๋ค...

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ 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..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ (Kruskal - Minimum Spanning Tree) ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น์ทํ๊ฒ ์ต์ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ค๋ง ์๋ฆฌ๋ ์กฐ๊ธ ๋ค๋ฅด๋ค. ๋จผ์ , ๋ชจ๋ Vertex ๋ค์ ๋ณ๋์ ์งํฉ์ผ๋ก ๋ง๋ ๋ค. ๊ทธ ํ, ๋ชจ๋ ์ฃ์ง๋ค์ ์ฐ์ ์์ ํ์ ๋ฃ๊ณ , ์ต์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง ๋ ์๋ค๋ถํฐ ๊บผ๋ด ๋ Vertex ๋ฅผ ์ด์ด์ค๋ค. ์ด๋, ๊ฐ์ ์งํฉ์ธ ๊ฒฝ์ฐ๋ ์ฐ๊ฒฐํ์ง ์๋๋ค. ์งํฉ์ด ๊ฐ์์ง๋ฅผ ํ๋ณํ๋ ๊ฒ์ Union-Find ๋ฅผ ์ด์ฉํด ๊ฒ์ฌํ๋ค...

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ (์ต์ ์ ์ฅ ํธ๋ฆฌ) ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ์ Greedy ํ ๋ฐฉ์์ผ๋ก Vertex ๋ค์ ์ด์ด ์ต์ ์ ์ฅ ํธ๋ฆฌ๋ฅผ ๋ง๋ ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ : ํด๋น ์ ์ ์ ์งํฉ ๋ํด, ์ฐ๊ฒฐ๋ {๊ฐ์ , ์ ์ } ์์ ์ ์ ๊ฐ์ค์น ๊ธฐ์ค์ผ๋ก ์ฐ์ ์์ ํ์ ๋ฃ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ค์น๊ฐ ๊ธฐ์กด์ ๊ฐ์ค์น๋ณด๋ค ์์ผ๋ฉด์, ๋์ฐฉ ์ง์ ์ด ๋ฏธ๋ฐฉ๋ฌธ์ธ ๋ ธ๋๋ฅผ ์งํฉ์ ๋ฃ๊ณ , ์ถ๊ฐ๋ ๋ ธ๋์ {๊ฐ์ , ์ ์ } ์๋ค์ ๋ค์ ์ฐ์ ์์ ํ์ ๋ฃ๋๋ค. ํด๋น ์์ ์ ๋ชจ๋ Vertex ๋ฅผ ์ํํ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๋๋ค. ์๊ฐ ๋ณต์ก๋๋..

๊ธฐ์ ๋ฉด์ ๊ณผ ์ฝ๋ฉํ ์คํธ ์ค๋น๋ฅผ ์ํด ๊ผญ ์์์ผ ํ ๊ธฐ์ด ์๊ณ ๋ฆฌ์ฆ ๊ด๋ จ ๊ฐ๋ ๋ค๊ณผ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๊ณ ์์ต๋๋ค. ๊ฐ ์ฃผ์ ๋ค์ GeeksForGeeks ์ Top 10 algorithms in Interview Questions ๊ธ์์ ๋ฐ์ทํ์์ต๋๋ค. ์ ๋์จ ํ์ธ๋ / ์ฌ์ดํด ์ฐพ๊ธฐ (Union-Find / Cycle Detection) ์ ๋์จ ํ์ธ๋๋, disjoint set ๋ค์ ํฉ์ณ์ ๊ฐ vertex ๋ค์ด ๊ฐ์ ์งํฉ์ธ์ง ์๋์ง ํ๋ณํ๋๋ฐ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. parent ๋ฐฐ์ด์ ๊ฐ vertex ์ ์กฐ์(root node) ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ , find, union ๋ฑ์ ํจ์๋ฅผ ์ด์ฉํด ๋ถ๋ชจ ๋ ธ๋๋ฅผ ํ์ํ๊ณ ์งํฉ์ ํฉ์น๋ค. find ํจ์๋ฅผ ๊ตฌํํ ๋, ์ฌ๊ท์ ์ผ๋ก ๊ฒฝ๋ก ํ์ ๋์ค ๋ง๋ vertex ๋ค์ด ๋ถ๋ชจ ๋ ธ๋๋ฅผ..