๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - Tree์ Balance ํ์ธํ๊ธฐ
์๋์ ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. [์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ] Tree์ Balance ํ์ธํ๊ธฐ https://youtu.be/-m154rqFQng (1) .h ์ฝ๋1 (2) .cpp
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - ์ด์งํธ๋ฆฌ๋ฅผ ๋ ๋ฒจ๋จ์ ๋ฆฌ์คํธ๋ก ๋ณํํ๊ธฐ
์๋์ ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. [์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ] ์ด์งํธ๋ฆฌ๋ฅผ ๋ ๋ฒจ๋จ์ ๋ฆฌ์คํธ๋ก ๋ณํํ๊ธฐ https://youtu.be/Y9Ar9eerxQU (1) .h ์ฝ๋1 (2) .cpp
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - ๋ฐฐ์ด์ ์ด์ง๊ฒ์ํธ๋ฆฌ๋ก ๋ง๋ค๊ธฐ
์๋์ ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. [์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ] ๋ฐฐ์ด์ ์ด์ง๊ฒ์ํธ๋ฆฌ๋ก ๋ง๋ค๊ธฐ in Java https://youtu.be/9ZZbA2iPjtM (1) .h (2) .cpp
[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph) - ๋ ์ง์ ์ ๊ฒฝ๋ก ์ฐพ๊ธฐ(dfs)
์๋์ ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. [์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ] Graph์์ ๋์ง์ ์ ๊ฒฝ๋ก์ฐพ๊ธฐ https://youtu.be/VHNOQZBXS0o (1) .h ์ฝ๋1 (2) .cpp
[์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ(Graph) - DFS, BFS ๊ตฌํ
์๋์ ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. [์๋ฃ๊ตฌ์กฐ ์๊ณ ๋ฆฌ์ฆ] Graph ๊ฒ์ DFS, BFS ๊ตฌํ in Java https://youtu.be/_hxFgg7TLZQ ์ธ์ ๋ฆฌ์คํธ(adjacency list)๋ก DFS์ BFS ๊ตฌํํ๊ธฐ DFS : stack/์ฌ๊ท BFS : queue (1) .h (2) .cpp
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - ํธ๋ผ์ด ํธ๋ฆฌ(Trie tree)
์๋์ ์์๋ค์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. Trie(ํธ๋ผ์ด) Tree์ ๋ํด์ - https://youtu.be/TohdsR58i3Q Trie - Insert and Search | GeeksforGeeks - https://youtu.be/dUBkaqrcYT8 0. ํธ๋ผ์ด ํธ๋ฆฌ(Trie tree)๋? (2023.03.16 ์์ ) ๋ฌธ์์ด ๊ฒ์์ ๋น ๋ฅด๊ฒ ํด์ฃผ๋ ์ด์ง ๊ฒ์ ํธ๋ฆฌ ๊ตฌ์กฐ. ํ ๋ ๋ฒจ๋น ํ ๋ฌธ์์ฉ ์ ์ฅ๋๋ฏ๋ก M์ด ๋ฌธ์์ด์ ์ต๋ ๊ธธ์ด๋ผ๋ฉด ๋ฌธ์์ด ๊ฒ์์ ์๊ฐ๋ณต์ก๋๋ O(Mlogn) ๋ค. ํธ๋ผ์ด๋ฅผ ์ด์ฉํ๋ฉด ์๊ฐ๋ณต์ก๋ O(M)์ด ๊ฑธ๋ฆฌ๋ ๋ฌธ์์ด ๊ฒ์๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์๋ค. ์ฐธ๊ณ -> https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%9D%BC%EC%9D%B4_(%..
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - ์ด์ง ํ(Binary Heaps)
์๋์ ์ ํฝ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. Binary Heaps (Min-Heaps and Max-Heaps) - https://youtu.be/jfwjyJvbbBI 0. ํ(Heaps)๋? ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ์ฐพ์๋ด๋ ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํ ์์ ์ด์ง ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ ์๋ฃ๊ตฌ์กฐ. root์ ๊ฐ์ฅ ์์ ๊ฐ์ด ์ค๋ฉด ์ต์ ํ(min heap), root์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์ค๋ฉด ์ต๋ ํ(max heap) 1. ์ต์ ํ์ ๋ ธ๋ ์ฝ์ ํ๊ธฐ(Insert) 1. ์์ ๋ ธ๋์ ๋งจ ๋(leaf)์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋, ์์ ์ด์ง ํธ๋ฆฌ(Complete binary tree)๋ฅผ ์ ์งํด์ผ ํ๋ฏ๋ก ๋ง์ง๋ง ๋ ๋ฒจ์ ์ผ์ชฝ๋ถํฐ ์ถ๊ฐ. 2. ๋ถ๋ชจ๋ ธ๋ > ์๋ ธ๋ ๋ผ๋ฉด ๋ถ๋ชจ์ ์๋ ธ๋์ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ. 3. ๋ถ๋ชจ๋ ธ๋ < ์..
[์๋ฃ๊ตฌ์กฐ] ํธ๋ฆฌ(Tree) - ํธ๋ฆฌ์ ์ข ๋ฅ, 3๊ฐ์ง ์ํ๋ฐฉ๋ฒ
์๋์ ์ ํฝ์์์ ๋ฐํ์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ข์์์ ๊ฐ์ฌํฉ๋๋ค. Tree์ ์ข ๋ฅ : https://youtu.be/LnxEBW29DOw 0. ํธ๋ฆฌ(tree)๋? ์ฆ Array, LinkedList, Stack, Queue๊ฐ์ด ์ ํ๊ตฌ์กฐ๊ฐ ์๋, ๋ถ๋ชจ์์์ ๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ณ์ธตํ ๊ทธ๋ํ. 1. ์ด์ง ํธ๋ฆฌ(Binary tree) Binary tree : ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ฅผ ์ต๋ 2๊ฐ์ฉ๋ง ๊ฐ๊ณ ์๋ ํธ๋ฆฌ. Ternary tree : ์์ ๋ ธ๋๋ฅผ 2๊ฐ ์ด์ ๊ฐ๊ณ ์๋ ํธ๋ฆฌ 2. ์ด์ง ๊ฒ์ ํธ๋ฆฌ(Binary Search Tree) Binary tree : ๋ ธ๋๋ค๊ฐ์ ๋์๊ด๊ณ๋ ๊ณ ๋ คํ์ง ์๋๋ค. Binary search tree : left child์ ๊ทธ ์ดํ ๋ ธ๋๋ค์ ๋ฐ์ดํฐ๊ฐ ํ์ฌ ๋ ธ๋(๋ถ๋ชจ ๋ ธ๋)์ ๋ฐ์ดํฐ ๋ณด..
[๋ฐฑ์ค/c++] 11049๋ฒ - ํ๋ ฌ ๊ณฑ์ ์์
๋ฌธ์ ๋ฌธ์ ํฌ๊ธฐ๊ฐ N×M์ธ ํ๋ ฌ A์ M×K์ธ B๋ฅผ ๊ณฑํ ๋ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ ์ด N×M×K๋ฒ์ด๋ค. ํ๋ ฌ N๊ฐ๋ฅผ ๊ณฑํ๋๋ฐ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ ํ๋ ฌ์ ๊ณฑํ๋ ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด, A์ ํฌ๊ธฐ๊ฐ 5×3์ด๊ณ , B์ ํฌ๊ธฐ๊ฐ 3×2, C์ ํฌ๊ธฐ๊ฐ 2×6์ธ ๊ฒฝ์ฐ์ ํ๋ ฌ์ ๊ณฑ ABC๋ฅผ ๊ตฌํ๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด์. AB๋ฅผ ๋จผ์ ๊ณฑํ๊ณ C๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ (AB)C์ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ 5×3×2 + 5×2×6 = 30 + 60 = 90๋ฒ์ด๋ค.BC๋ฅผ ๋จผ์ ๊ณฑํ๊ณ A๋ฅผ ๊ณฑํ๋ ๊ฒฝ์ฐ A(BC)์ ํ์ํ ๊ณฑ์ ์ฐ์ฐ์ ์๋ 3×2×6 + 5×3×6 = 36 + 90 = 126๋ฒ์ด๋ค.๊ฐ์ ๊ณฑ์ ์ด์ง๋ง, ๊ณฑ์ ์ ํ๋ ์์์ ๋ฐ๋ผ์ ๊ณฑ์ ์ฐ์ฐ์ ์๊ฐ ๋ฌ๋ผ์ง๋ค.ํ๋ ฌ N๊ฐ์ ํฌ๊ธฐ๊ฐ ์ฃผ์ด์ก์ ๋, ๋ชจ๋ ํ๋ ฌ์..
[๋ฐฑ์ค/c++] 11066๋ฒ - ํ์ผ ํฉ์น๊ธฐ
๋ฌธ์ https://www.acmicpc.net/problem/11066 ๋ฌธ์ ์์ค๊ฐ์ธ ๊น๋์ ์ ์์ค์ ์ฌ๋ฌ ์ฅ(chapter)์ผ๋ก ๋๋์ด ์ฐ๋๋ฐ, ๊ฐ ์ฅ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํ์ผ์ ์ ์ฅํ๊ณค ํ๋ค. ์์ค์ ๋ชจ๋ ์ฅ์ ์ฐ๊ณ ๋์๋ ๊ฐ ์ฅ์ด ์ฐ์ฌ์ง ํ์ผ์ ํฉ์ณ์ ์ต์ข ์ ์ผ๋ก ์์ค์ ์์ฑ๋ณธ์ด ๋ค์ด์๋ ํ ๊ฐ์ ํ์ผ์ ๋ง๋ ๋ค. ์ด ๊ณผ์ ์์ ๋ ๊ฐ์ ํ์ผ์ ํฉ์ณ์ ํ๋์ ์์ํ์ผ์ ๋ง๋ค๊ณ , ์ด ์์ํ์ผ์ด๋ ์๋์ ํ์ผ์ ๊ณ์ ๋ ๊ฐ์ฉ ํฉ์ณ์ ์์ค์ ์ฌ๋ฌ ์ฅ๋ค์ด ์ฐ์์ด ๋๋๋ก ํ์ผ์ ํฉ์ณ๋๊ฐ๊ณ , ์ต์ข ์ ์ผ๋ก๋ ํ๋์ ํ์ผ๋ก ํฉ์น๋ค. ๋ ๊ฐ์ ํ์ผ์ ํฉ์น ๋ ํ์ํ ๋น์ฉ(์๊ฐ ๋ฑ)์ด ๋ ํ์ผ ํฌ๊ธฐ์ ํฉ์ด๋ผ๊ณ ๊ฐ์ ํ ๋, ์ต์ข ์ ์ธ ํ ๊ฐ์ ํ์ผ์ ์์ฑํ๋๋ฐ ํ์ํ ๋น์ฉ์ ์ด ํฉ์ ๊ณ์ฐํ์์ค.์๋ฅผ ๋ค์ด, C1, C2, C3, C4๊ฐ..