๐ป Computer Science/- Data Structure, Algorithm147 [์๋ฃ ๊ตฌ์กฐ] - ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ (4)-์ด์ง ํ์ ํธ๋ฆฌ ์๋ฐ๋ก ๊ตฌํํ๊ธฐ :: Binary Search Tree implementation by java ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ํธ๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ ์ฉ์ด ์ ์ด์ง ํธ๋ฆฌ์ ์ข ๋ฅ์ ๊ธฐ๋ณธ์ ๋ํ ์ง์์ด ์์ด์ผ ์ํํ ์ดํด๊ฐ ๊ฐ๋ฅํ๋ ์์ง ์ดํด๊ฐ ๋ถ์กฑํ ์ฌ๋๋ค์ ๊ผญ ํ ๋ฒ ๊ฐ๋ณ๊ฒ ์ฝ๊ณ ์ค๋ ๊ฒ์ ์ถ์ฒํ๋ค. ์ด์ง ํ์ ํธ๋ฆฌ Binary Search Tree ์ด์ง ํ์ ํธ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ด์ง ํธ๋ฆฌ๋ฅผ Binary Search Tree๋ผ๊ณ ํ๋ค. ๊ธฐ๋ณธ ์ ์ : ํธ๋ฆฌ์ ํค์๋ ๊ฐ์ด ๋ฐ๋์ ์กด์ฌํ๋ฉฐ ๊ฐ๋ค์ ๋น๊ตํ ์ ์๋ ์ง๋จ์ด ์กด์ฌํ๋ ์ ์์ ์ฌ์ผ ํ๋ค. ์กฐ๊ฑด 1 : ์ด๋ค ๋ ธ๋ N์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ ์๋ธ ํธ๋ฆฌ ๋ ธ๋์ ๋ชจ๋ ํค ๊ฐ์ ๋ ธ๋ N์ ํค ๊ฐ ๋ณด๋ค ์์์ผ ํ๋ค. ์กฐ๊ฑด 2 : ์ค๋ฅธ์ชฝ ์๋ธ ํธ๋ฆฌ ๋ ธ๋์ ํค ๊ฐ์ ๋ ธ๋ N์ ํค ๊ฐ๋ณด๋ค ์ปค์ผ ํ๋ค. ์กฐ๊ฑด 3 : ๊ฐ์ ํค์ ๊ฐ์ ๊ฐ๋ ๋ ธ๋๋ .. 2020. 6. 18. [์๋ฃ ๊ตฌ์กฐ] - ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ (3)-์ด์ง ํธ๋ฆฌ์ ์ข ๋ฅ(์์ , ํฌํ, ์๋ฒฝ, ๊ท ํ) :: Binary Tree (Full, Complete, Perfect, Balanced) ์ด์ง ํธ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์์ผ๋ก ๋ง์ฃผํ๊ฒ๋ ํธ๋ฆฌ(Red-Black Tree, AVL Tree, Segment Tree)๋ค์ค ๊ฐ์ฅ ์ฝ๊ณ ์์ฃผ ์ฐ์ด๋ ํธ๋ฆฌ์ด๋ค. ์ด์ง ํธ๋ฆฌ Binary Tree ์ด์ง ํธ๋ฆฌ๋ ๋ ธ๋๊ฐ ์ผ์ชฝ ์์๊ณผ ์ค๋ฅธ์ชฝ ์์์ ๊ฐ๋ ํธ๋ฆฌ์ด๋ค. ์ด ๋ ์ค์ํ ์ ์ด ์ผ์ชฝ ์์๊ณผ ์ค๋ฅธ์ชฝ ์์์ ํ๋์ฉ๋ง ๊ฐ์ ธ์ผ ์ด์ง ํธ๋ฆฌ๊ฐ ๋๋ค. ์ด๋ฌํ ์ด์ง ํธ๋ฆฌ๋ ์ผ์ชฝ ์์๊ณผ ์ค๋ฅธ์ชฝ ์์์ ๊ตฌ๋ถํ๋ค๋ ํน์ง์ด ์๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ํธ๋ฆฌ์ ๊ฐ๋ ๊ณผ ์ฉ์ด ์์ ๋ฐฐ์ ๋ฏ์ด ์ค๋ฅธ์ชฝ ์์์ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ๊ฐ๊ณ ์ผ์ชฝ์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ๋ฅผ ๊ฐ์ง ์ ์๋ค. ์ด์ ์ด์ง ํธ๋ฆฌ์ ๋ํด์ ์์์ผ๋ ๊ทธ ์ข ๋ฅ์ ๋ํด ์์๋ณด์. ์ด์ง ํธ๋ฆฌ์ ์ข ๋ฅ ์ด์ง ํธ๋ฆฌ์ ์ข ๋ฅ๋ ํฌ๊ฒ 5๊ฐ์ง๊ฐ ์๋ค. ํ๊ธ๋ก ๋ฒ์ญํ๋ ๊ณผ์ ์์ ์ฌ๋ฌ ์ฐธ๊ณ ์์ ๋ค์ด ์ ๋ชป ๋ฒ์ญํ์ฌ ์ ๋ชป ์๊ฒ.. 2020. 6. 18. [์๋ฃ ๊ตฌ์กฐ] - ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ(2)-ํธ๋ฆฌ์ ๋๋น ์ฐ์ ํ์(BFS)๊ณผ ๊น์ด ์ฐ์ ํ์(DFS) :: Tree-Search (Breadth-First Search, Depth-First Search) ์ง๋ ์๊ฐ์ ์ฐ๋ฆฌ๋ ํธ๋ฆฌ์ ๋ํ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ฉ์ด์ ๋ํด์ ์์๋ณด์์ผ๋ ์ด์ ํธ๋ฆฌ๋ฅผ ํ๊ณ ๋ค ์ค๋น๊ฐ ๋์๋ค. ์๋ BFS์ DFS๋ ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ์ฏค ๊ฐ์์ผ ๊ตฌํ๋ ํ ๋งํ๊ณ ์ฌ๋ฐ์ง๋ง ๋ง์ ๊ฐ์ ํ๋ ค๋ฉด ์ด๋ ค์ธ ์ ์์ผ๋ ์ด๋ฒ ์๊ฐ์๋ ๊ฐ๋ณ๊ฒ ์ฝ์ด๋ณด๊ณ ์ด๋ฐ๊ฒ ์๊ตฌ๋ ํ๊ณ ๋์ด๊ฐ๋ ์๊ฐ์ด ๋์์ผ๋ฉด ์ข๊ฒ ๋ค. ํธ๋ฆฌ์ ํ์ ํธ๋ฆฌ์ ํ์์๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค. ๋๋น ์ฐ์ ํ์ ๊น์ด ์ฐ์ ํ์ BFS::๋๋น ์ฐ์ ํ์ ๋๋น ์ฐ์ ํ์์ ๊ฐ์ฅ ๋ฎ์ ๋ ๋ฒจ์์ ์์ํ์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ ๋ฐฉํฅ์ ๊ฒ์ํ๊ณ ํ ๋ ๋ฒจ์์ ๊ฒ์์ด ๋๋๋ฉด ๋ค์ ๋ ๋ฒจ๋ก ๋ด๋ ค๊ฐ๋ ๋ฐฉ์์ผ ๊ฒ์ ๊ตฌ์กฐ์ด๋ค. ๋๋น ์ฐ์ ํ์์ ๊ฐ๊น์ด ์ ์ ์ ๋จผ์ ๋ฐฉ๋ฌธ ํ๊ณ ๋ฉ๋ฆฌ ์๋ ์ ์ ์ ๋์ค์ ๋ฐฉ๋ฌธํ๋ค๋ ์ ์์ ํน์ ์ ์ ๊ณผ์ ๊ด๊ณ๊ฐ ์ค์ํ ํ์ ๋ฐฉ๋ฒ์ด๋ค. ์๋ฅผ ๋ค์ด ์ ์ธ.. 2020. 6. 18. [์๋ฃ ๊ตฌ์กฐ] - ํธ๋ฆฌ ์๋ฃ ๊ตฌ์กฐ(1)-๊ธฐ๋ณธ ํธ๋ฆฌ ์ฉ์ด ๋ฐ ๊ฐ๋ ์ ๋ฆฌ :: Tree Data Structure. ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ๋ ์ฐ๋ฆฌ๊ฐ ์ผ์์ ์ด๋ฉด์ ๋ชจ๋ฅด์ง๋ง ์์ฃผ ๋ง์ฃผํ๊ณ ์ฌ์ฉํ๋ ๊ฐ๋ ์ด๋ค. ์ด๋ฅผํ ๋ฉด ์ฐ๋ฆฌ ๋ถ๋ชจ์ ์์์ ๊ด๊ณ ๋ํ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. ํธ๋ฆฌ ํ๋ฉด ๊ฐ์ฅ ๋ํ์ ์ผ๋ก ํํํ๋ ๊ฒ์ด ๋ฐ๋ก ์ปดํจํฐ์ File System์ด๋ค. ํ์ผ์ ์ฐพ๊ธฐ ์ํด์ ์ฐ๋ฆฌ๋ ๋๋ ํ ๋ฆฌ ์์ ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ํ๊ณ ๋ค์ด๊ฐ์ ํ์ผ์ ์ฐพ๊ณค ํ๋๋ฐ, ์ด๊ฒ์ด ๋ฐ๋ก ํธ๋ฆฌ์ ์ฌ์ฉ์ด๋ค. ๋ ๋ค์ํ ํธ๋ฆฌ์ ์ฌ์ฉ์ ๋ณด๊ณ ํธ๋ฆฌ๋ฅผ ์ ์ถํด๋ณด์! File System HTML Tag ๊ตฌ์กฐ ๋-์๊ตฐ๊ตฌ-์๋ฉด๋-์ ์ฃผ์ ์ฒด๊ณ DBMS ๋ผ์ฐํฐ ํต์ ์๊ณ ๋ฆฌ์ฆ ๊ฒ์ ์์ง ์์์ ๋์จ ์ฌ์ฉ๋ค์ด ๊ฐ๋ ๊ฐ์ฅ ๋๋๋ฌ์ง๋ ๊ณตํต์ ์ด ์๋๋ฐ, ๋ฐ๋ก ๊ณ์ธต ๊ตฌ์กฐ๋ผ๋ ๊ฒ์ด๋ค. ๊ณ์ธต ๊ตฌ์กฐ ํธ๋ฆฌ๋ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ํ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ๊ณ์ธต ๊ตฌ์กฐ๋ผ๊ณ ํจ์ ๋ถ๋ชจ-์์ ๊ด๊ณ๋ฅผ ๊ฐ๋ ๋ฐ์ดํฐ์.. 2020. 6. 18. [์๊ณ ๋ฆฌ์ฆ-PS(์ฌ๊ท)] Java๋ก ํ๋ ธ์ด ํ ์๊ณ ๋ฆฌ์ฆ ์ฌ๊ท์ ์ผ๋ก ๊ตฌํํ๊ธฐ :: Hanoi Tower Algorithm Java Code by recursion ํ๋ ธ์ด ํ์ ์ ๋ง ์ ๋ช ํ ํผ์ฆ์ด๋ค. ํ๋ ธ์ด ํ์ ๋ํด์ ์์ธํ ์๊ณ ์ถ๋ค๋ฉด ํ๋ ธ์ดํ ์ํค ์์ ์์ธํ ์ฝ์ด๋ณด๋ ๊ฒ๋ ์ฌ๋ฐ์ ๊ฒ ๊ฐ๋ค. ํ๋ ธ์ด ํ์ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด ์ธ ๊ฐ์ ๊ธฐ๋ฅ๊ณผ ์ด ๊ธฐ๋ฅ์ ๊ฝ์ ์ ์๋ ํฌ๊ธฐ๊ฐ ๋ค์ํ ์ํ๋ค์ด ์๊ณ , ํผ์ฆ์ ์์ํ๊ธฐ ์ ์๋ ํ ๊ธฐ๋ฅ์ ์ํ๋ค์ด ์์ ๊ฒ์ด ์์ ์๋๋ก ์์๋๋ก ์์ฌ ์๋ค. ๊ฒ์์ ๋ชฉ์ ์ ๋ค์ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ฉด์, ํ ๊ธฐ๋ฅ์ ๊ฝํ ์ํ๋ค์ ๊ทธ ์์ ๊ทธ๋๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ฒจ์ ๋ค์ ์๋ ๊ฒ์ด๋ค. ์กฐ๊ฑด ํ ๋ฒ์ ํ๋์ ์ํ๋ง ์ฎ๊ธธ ์ ์๋ค. ํฐ ์ํ์ด ์์ ์ํ ์์ ์์ด์๋ ์ ๋๋ค. -> ํญ์ ์์ ์๋ฐ์ด ์์ ์์ด์ผ ํ๋ค. ํ๋ ธ์ด ํ์ ์ํ์ ๋ชจ๋ ์ฎ๊ธฐ๋ ค๋ฉด (2^n - 1)์ ๊ฒฝ์ฐ๊ฐ ํ์ํ๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ฌ๊ท ํธ์ถ์ ๋ํด์ ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋น .. 2020. 6. 13. [์๋ฃ๊ตฌ์กฐ-PS] Java ์์ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๊ตฌํํ๊ธฐ :: (Simple Linked List sample code) ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๊ฐ์ฅ ๋จ์ํ ํํ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ๋ ธ๋๊ฐ ๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํ๋์ ์ฐธ์กฐ๋ง ๊ฐ๊ณ ์์ผ๋ฉฐ, ๋จ๋ฐฉํฅ์ผ๋ก ์ฐธ์กฐํ ์ ์๋ ํน์ง ๋๋ถ์ ๊ตฌํํ๊ธฐ ๊ฐ๋จํ๋ค. ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ ธ๋ ์์ฑ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์์ผ๋ ์ฝ์ ๊ณผ ์ญ์ ์ฐ์ฐ์ ๊ตฌํํด๋ณด์. ์ฝ์ ์ฐ์ฐ ์ฝ์ ์ฐ์ฐ์ ์ด ์ธ ๊ฐ์ง๋ก ํฌ๊ฒ ๊ตฌ๋ถํ ์ ์๋ค. Head์ ์ฝ์ ํ๊ธฐ. Tail์ ์ฝ์ ํ๊ธฐ. ํน์ ์์น์ ์ฝ์ ํ๊ธฐ. 1. Head์ ์ฝ์ ํ๊ธฐ Head์ ์ฝ์ ํ๊ธฐ ์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค. ์๋ก์ด ๋ ธ๋ ์์ฑ ์๋ก์ด ๋ ธ๋์ ๋ค์ ๋ ธ๋(link ํ๋)๋ฅผ ๊ธฐ์กด์ ์๋ head๋ ธ๋๋ก ์ค์ ํค๋ ๋ ธ๋์ ์๋ก์ด ๋ ธ๋์ ๊ตํ. ํ ์ผ ๋ ธ๋๋ฅผ ๊ธฐ์กด์ ํค๋๋ ธ๋๋ก ์ค์ . 2. Tail์ ์ฝ์ ํ๊ธฐ 3. ํน์ ์์น์ ์ฝ์ ํ๊ธฐ ํน์ ์์น์ ๋ ธ๋๋ฅผ .. 2020. 6. 12. ์ด์ 1 ยทยทยท 17 18 19 20 21 22 23 ยทยทยท 25 ๋ค์