์๊ณ ๋ฆฌ์ฆ/์๋ฃ๊ตฌ์กฐ ์ด๋ก 16 ์๋ฃ๊ตฌ์กฐ ๋ชฉ๋ก (+java์์์ ์ฌ์ฉ) ์๋ฃ๊ตฌ์กฐ์๋ ํฌ๊ฒ ์ ํ์๋ฃ๊ตฌ์กฐ์ ๋น์ ํ ์๋ฃ๊ตฌ์กฐ๊ฐ ์์ผ๋ฉฐ ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค์ ๊ฐ๋ตํ ์ค๋ช ์ด๋ค.๊ฐ ์๋ฃ๊ตฌ์กฐ์ ์์ธํ ์ค๋ช ์ ํด๋น ๋ธ๋ก๊ทธ ๋ค๋ฅธ๊ธ์ ์์ ๋์ด์๋ค. ๐ซ๊ธฐ๋ณธ์ ์ธ ์๋ฃ๊ตฌ์กฐ ๋ชจ์1. ๋ฐฐ์ด(Array)์ค๋ช : ๋์ผํ ํ์ ์ ์์๋ค์ด ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค.ํน์ง: ์ธ๋ฑ์ค๋ฅผ ํตํด ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅ, ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋์ด ์์.์ฌ์ฉ ์: ์ ์ ๋ฐฐ์ด, ๋ฌธ์ ๋ฐฐ์ด ๋ฑ.2. ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linked List)์ค๋ช : ๊ฐ ์์๊ฐ ๋ ธ๋๋ก ๊ตฌ์ฑ๋๊ณ , ๊ฐ ๋ ธ๋๋ ๋ฐ์ดํฐ์ ๋ค์ ๋ ธ๋์ ๋ํ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋๋ค.ํน์ง: ๋์ ํฌ๊ธฐ, ์์ ์ฝ์ /์ญ์ ๊ฐ ์ฉ์ดํจ, ์์ ์ ๊ทผ์ด ๋นํจ์จ์ .์ฌ์ฉ ์: ๋ฆฌ์คํธ, ํ, ์คํ ๊ตฌํ.3. ์คํ(Stack)์ค๋ช : ํ์ ์ ์ถ(LIFO, Last In First Ou.. 2024. 6. 25. ํ(Heap) - ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป Heap ์ด๋?๋น์ ํ ์๋ฃ๊ตฌ์กฐ๋ก ํธ๋ฆฌ ๊ธฐ๋ฐ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ต๋ ํ(Max Heap), ์ต์ ํ(Min Heap)์ด ์๋ค. ์ต๋ ํ์์๋ ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , ์ต์ ํ์์๋ ๋ถ๋ชจ ๋ ธ๋๊ฐ ์์ ๋ ธ๋๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.Heap์ ์์ ์ด์ง ํธ๋ฆฌ(Complete Binary Tree) ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก์ผ๋ฉฐ ์ด์ง ํ(Binary Heap)์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํํ์ด๋ค.์ฐ์ ์์ ํ๋ฅผ ์ํ์ฌ ๋ง๋ค์ด์ก์ผ๋ฏ๋ก ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ ๋ ์ฌ์ฉ๋๋ฉฐ ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋ค. ํ์ ์ผ์ข ์ ๋ฐ ์ ๋ ฌ ์ํ๋ฅผ ์ ์งํ๋ค.(ํฐ ๊ฐ์ด ์์ ๋ ๋ฒจ์ ์๊ฑฐ๋ ์์ ๊ฐ์ด ํ์ ๋ ๋ฒจ์ ์๋ค. )๋ํ ํ ํธ๋ฆฌ์์๋ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ๋ค. (์ด์ง ํ์ ํธ๋ฆฌ์์๋ ์ค๋ณต๋ ๊ฐ์ ํ์ฉํ์ง ์๋๋ค.) ์ฆ, ํ์ ์ต.. 2024. 6. 22. ํธ๋ฆฌ(Tree) - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป Tree๋?๋ ธ๋(NODE) + ์์ง(EDGE)๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ๋ก ๊ทธ๋ํ์ ์ผ์ข ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.๊ณ์ธต์ ์ธ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ผ๋ ์ฌ์ฉํ๋ค. (ํด๋๊ตฌ์กฐ-๋๋ ํ ๋ฆฌ, ์กฐ์ง๋, ๊ฐ๊ณ๋ ๋ฑ) โ๏ธ ํธ๋ฆฌ์ ํน์งํ๋์ ๋ ธ๋์์ ๋ค๋ฅธ ๋ ธ๋๋ก ์ด๋ํ๋ ๊ฒฝ๋ก๋ ์ ์ผํ๋ค.๋ ธ๋๊ฐ N๊ฐ์ธ ํธ๋ฆฌ์ ์์ง์๋ N-1๊ฐ์ด๋ค.Acyclicํ๋ค. (Cycle์ด ์กด์ฌํ์ง ์์)๋ชจ๋ ๋ ธ๋๋ ์๋ก ์ฐ๊ฒฐ๋์ด ์๋ค.ํ๋์ Edge๋ฅผ ๋์ผ๋ฉด 2๊ฐ์ Sub-Tree๋ก ๋ถ๋ฆฌ๋๋ค. โ๏ธ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ ธ๋(Node) : ํธ๋ฆฌ ๊ตฌ์กฐ์ ์๋ฃ๊ฐ์ ๋ด๊ณ ์๋ ๋จ์์์ง(Edge) : ๋ ธ๋๊ฐ์ ์ฐ๊ฒฐ์ (=link, branch)๋ฃจํธ๋ ธ๋(Root) : ๋ถ๋ชจ๊ฐ ์๋, ์ต์๋จ ๋ ธ๋์์๋ ธ๋(Leaf) : ์์์ด ์๋, ๋จ๋ง ๋ ธ๋๋ด๋ถ๋ ธ๋(internal) : ์์๋ ธ๋๋ฅผ .. 2024. 6. 22. Linked List - ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป Linked List ๋?Linked List๋ ์ ํ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ก Node(๋ ธ๋)๋ค์ด ์๋ก ์ฐ๊ฒฐ๋ ํํ๋ก ๊ฐ ๋ ธ๋๋ ๋ฐ์ดํฐ์ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๋ค. ์ฃผ์ ํํ๋ก๋ ๋จ์ผ ์ฐ๊ฒฐ๋ฆฌ์คํธ, ์ด์ค ์ฐ๊ฒฐ๋ฆฌ์คํธ, ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๊ฐ ์๋ค.ํด๋น ๋ ธ๋๋ค์ ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ์ฐ๊ฒฐ๋์ด ์์ง ์์ง๋ง, ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ํฌ์ธํฐ๋ฅผ ํตํด ์ฐ๊ฒฐ๋์ด ์๋ค. * ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋น๋ฒํ ์ํฉ์์ ์ฌ์ฉ๋๋ค. ํนํ ๋ฆฌ์คํธ์ ์์์ด๋ ๋ ๋ถ๋ถ์์์ ์ฝ์ ์ญ์ ๊ฐ ํจ์จ์ ์ด๋ค. โ๏ธ ์๊ฐ ๋ณต์ก๋์ฝ์ ์ญ์ ์ : O(1) ใด ๋ฐ๋ผ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋น๋ฒํ ์ํฉ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.์ค๊ฐ์์์ ๊ฒ์ : O(n) โ๏ธ ์ฌ๋ฌ๊ฐ์ง Linked List 1. ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ (Singly Linked List)๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ๊ฐ ๋ ธ๋๋ ๋ค.. 2024. 6. 21. HashMap - ์๋ฃ๊ตฌ์กฐ ๋ชฉ์ฐจ 1. HashMap์ด๋?2. ํด์ฑ3. ๋ฒํท4. ์ถฉ๋์ฒ๋ฆฌ ๋ฐฉ๋ฒ 4-1) ์ฒด์ด๋ 4-2) ์คํ ์ด๋๋ ์ฑ 4-2-1) ์ ํํ์ฌ 4-2-2) ์ด์ฐจํ์ฌ 4-2-3) ์ด์คํด์ฑ5. HashMap์ ์ฃผ์ ๋ฉ์๋6. ์ฑ๋ฅ ํน์ฑ (์๊ฐ๋ณต์ก๋ / ๊ณต๊ฐ๋ณต์ก๋)7. HashMap VS HashTable8. ๋ฌธ์ ํ์ด ๐ฉ๐ป HashMap ์ด๋? HashMap ์ Key์ Value๊ฐ ์์ ์ด๋ค ์ ์ฅ๋๋ ํํ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.๊ฐ key๋ ๊ณ ์ ํ์ฌ ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ key๋ฅผ ์ฌ์ฉํ์ฌ ํด๋นํ๋ Value์ ์ ๊ทผํ๋ ๋ฐฉ์์ด๋ค. โ๏ธ ํด์ฑ (Hashing)* Hash Map์ ํต์ฌ์ด ๋๋ ์๋ฆฌ๋ก ํค๋ฅผ ํน์ ๊ณ์ฐ์์ ๋ฃ์ด ๋์จ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ๊ทผํ๋ ๊ณผ์ ์ด๋ค.(ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํค๋ฅผ ํด.. 2024. 6. 20. Array(๋ฐฐ์ด) - (์ ํ)์๋ฃ๊ตฌ์กฐ Array (๋ฐฐ์ด)์ ๊ฐ์ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ๊ฐ ๋์ดํ ์ ํ ์๋ฃ๊ตฌ์กฐ์ด๋ค.์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. โ๏ธ Array์ ์๊ฐ ๋ณต์ก๋์ธ๋ฑ์ค๋ฅผ ์๊ณ ์๋ ๊ฒฝ์ฐ ์์์ ์ ๊ทผํ๋ ์๊ฐ ๋ณต์ก๋ : O(1)ใด ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ์ํ๋ ์์น์ ๋น ๋ฅด๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋ค.์ฝ์ ์ญ์ ์์ ์๊ฐ ๋ณต์ก๋ : O(n) ใด ์ฝ์ , ์ญ์ ์ ํด๋น ์์น ์ดํ์ ๋ชจ๋ ์์๋ค์ ์ด๋์์ผ์ผํ๋ฏ๋ก ์ฑ๋ฅ์ด ์ข์ง ์๋ค. โ๏ธ Array์ ์ฅ์ ๊ตฌํ์ด ์ฝ๋ค.์ธ๋ฑ์ค๋ฅผ ํตํด ์ ๊ทผํ๋ฏ๋ก ์ ๊ทผ(๊ฒ์)์ด ๋น ๋ฅด๋ค.์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ค.๋ํ ์์๋๋ก ์ ์ฅ๋๋ฏ๋ก ์ธ์ ํ ์์๋ค์ ๋ํ ์บ์ ์ง์ญ์ฑ์ด ์ข์ ์ฑ๋ฅ ํฅ์์ ๋์์ ์ค ์ ์๋ค. ์ฐธ์กฐ๋ฅผ ์ํ ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ์ง ์๋ค. ๋ค.. 2024. 6. 19. ์ด์ 1 2 3 ๋ค์