์๊ณ ๋ฆฌ์ฆ/์๋ฃ๊ตฌ์กฐ ์ด๋ก 16 ํธ๋ผ์ด (Trie) - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป ํธ๋ผ์ด (Trie)๋ฌธ์์ด์ ์ ์ฅํ๊ณ ๋น ๋ฅด๊ฒ ํ์ํ๊ธฐ ์ํ ์ ๋ ฌ๋ ํธ๋ฆฌ ํํ์ ์๋ฃ๊ตฌ์กฐ ๋ฌธ์์ด ์ ์ฅ์ ์ํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ์ํ์ง๋ง, ํ์์ด ๋น ๋ฆ *** โ๏ธ ์๊ฐ ๋ณต์ก๋ ๋ฐ ์์ฑ ๋ณต์ก๋๊ธธ์ด๊ฐ N์ธ ๋ฌธ์์ด ํ์์ ์๊ฐ ๋ณต์ก๋ :O(N)์์ฑ ๋ณต์ก๋ : O(MN) (M: ๋ฌธ์์ด ๊ฐ์) โ๏ธ ํธ๋ผ์ด ํํ๋ฌธ์์ด ๊ตฌ์ฑ ex) apple, april, ace, bear, best โ๏ธ ํธ๋ผ์ด์ ์ฝ์ ์์ ์๋ ๊ฒ๊ณผ ๋น๊ตํ์ฌ ์๋ ๋ถ๋ถ์ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ์ ์๋ ๋ถ๋ถ๋ถํฐ ๋ ธ๋๋ฅผ ์์ฑ, ๋ฌธ์์ ๋ ๋ ธ๋๋ ๋ฐ๋ก ํ๊ธฐ๋ฅผ ํด๋๋ค. โ๏ธ ํธ๋ผ์ด์ ์ญ์ ๋ฌธ์๋ฅผ ๋ฐ๋ผ๊ฐ์ ๋์ชฝ์ ๋ค๋ค๋ฅด๋ฉด, ( apple์์์ e, app์์์ p ) ํด๋น ์น ํด์ ธ์๋ ๋ ธ๋์ (๋ฌธ์์ด ๋ ๋ ธ๋์) ์์๋ ธ๋๊ฐ ์์ผ๋ฉด ์์น ํ ๊ฒ์ ์์ค ํ ์๋ก ์ด๋, ๊ทธ.. 2024. 7. 17. ์ฐ์ ์์ ํ (Priority Queue) - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป ์ฐ์ ์์ ํ - Priority QueueQueue์ง๋ง, FIFO๊ฐ ์๋๊ณ , ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋์จ๋ค.๋ํ ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ํญ์ ๋ง์กฑํ๋ค.๋ชจ๋ ๋ฐ์ดํฐ์ ์ฐ์ ์์๊ฐ ์๋ค.Dequeue์, "์ฐ์ ์์๊ฐ ๋์ ์"์ผ๋ก ๋๊ฐ๋ค.์ฐ์ ์์๊ฐ "๊ฐ์" ๊ฒฝ์ฐ๋ FIFO๋ก ๋์จ๋ค. โ๏ธ enqueue, dequeue (์ฝ์ , ์ญ์ )์ฐ์ ์์ ํ๋ฅผ ์ํด ๋ง๋ค์ด์ง Heap ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํ์์๋enqueue, dequeue๊ฐ ์ต์ ํ ๋ฐ ์ต๋ ํ์ ์ฝ์ ์ญ์ ์ ๊ฐ๋ค! โ๏ธ ์ฐ์ ์์ ํ์ ๊ตฌํ๋ฐฐ์ด์ฐ๊ฒฐ ๋ฆฌ์คํธํ : ์ผ๋ฐ์ ์ผ๋ก ํ์ ์ด์ฉํ์ฌ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๋ค. (์๋ฐ์ ๋ด๋ถ ํด๋์ค๋ ํ์ผ๋ก ๊ตฌํ๋์ด ์์)์ผ๋ฐ์ ์ผ๋ก Heap์ ์ด์ฉํ์ฌ ์ฐ์ ์์ ํ๋ฅผ ๊ตฌํํ๋๋ฐ์๋ ์๊ฐ๋ณต์ก๋.. 2024. 7. 17. ๊ทธ๋ํ - ๋น์ ํ ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป ๊ทธ๋ํ (Graph)์ ์ ๊ณผ ๊ฐ์ ์ผ๋ก ์ด๋ฃจ์ด์ง ์๋ฃ๊ตฌ์กฐ (Cyclic)์ฐ๊ฒฐ๋ ์ ์ ๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ์ ์๋ ์๋ฃ๊ตฌ์กฐํธ๋ฆฌ์ ๋ค๋ฅธ์ ์ ํธ๋ฆฌ๋ an cyclic ์ด๋ผ๋ฉด ๊ทธ๋ํ๋ cyclic์ด๋ค. ***๊ฐ์ ๋ผ๋ฆฌ ๊ฐ์ค์น๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ๊ทธ๋ํ์ ์ฉ๋ : ์งํ์ฒ ๋ ธ์ ๋, ํต์ ๋คํธ์ํฌ, ... โ๏ธ ๊ทธ๋ํ ๊ตฌ์กฐ์ ์ (Vertex) : ๊ฐ ๋ ธ๋๊ฐ์ (Edge) : ๋ ธ๋์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ์ (Link, branch)์ธ์ ์ ์ (Adjacent vertex) : ๊ฐ์ ํ๋๋ฅผ ๋๊ณ ๋ฐ๋ก ์ฐ๊ฒฐ๋ ์ ์ ์ ์ ์ ์ฐจ์ (Degree):๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์์ ํ๋์ ์ ์ ์ ์ธ์ ํ ์ ์ ์ ์๋ฌด๋ฐฉํฅ ๊ทธ๋ํ ๋ชจ๋ ์ ์ ์ฐจ์์ ํฉ = ๊ทธ๋ํ ๊ฐ์ ์ ์ 2๋ฐฐ์ง์ ์ฐจ์ (In-degree): ๋ฐฉํฅ ๊ทธ๋ํ์์ ์ธ๋ถ์์ ์ค๋ ๊ฐ์ ์.. 2024. 7. 16. ๊ท ํ ์ด์ง ํธ๋ฆฌ (by ์ด์ง ํ์ ํธ๋ฆฌ) ๐ฉ๐ป ๊ท ํ ์ด์ง ํธ๋ฆฌ๋?๊ท ํ ์ด์ง ํธ๋ฆฌ๋? ๋ชจ๋ ๋ ธ๋์ ์ข์ฐ ์๋ธ ํธ๋ฆฌ ๋์ด๊ฐ 1์ด์ ์ฐจ์ด ๋์ง ์๋ ํธ๋ฆฌ์ด๋ค. โ๏ธ ์ด์ง ํ์ ํธ๋ฆฌ์ ํธํฅ ๋ฐ์๊ฒฝ์ฐ 1) ์ด์ง ํ์ ํธ๋ฆฌ์ ์ฝ์ ๋๋ ์์ : 20 -> 10 -> 30 -> 5 ์ธ ๊ฒฝ์ฐ์๋ ๊ท ํ ์ด์ง ํธ๋ฆฌ๊ฐ ๋๋ค.๊ฒฝ์ฐ 2) ์ด์ง ํ์ ํธ๋ฆฌ์ ์ฝ์ ๋๋ ์์ : 5 -> 10 -> 20 -> 30 ์ธ ๊ฒฝ์ฐ์๋ ์ฌํฅ ์ด์ง ํธ๋ฆฌ๊ฐ ๋๋ค. โ๏ธ Balanced Binary Search Tree๋ ธ๋์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ผ์ด๋ ๋ ๊ท ํ์ ์ ์งํ๋๋ก ํ๋ ํธ๋ฆฌ ์ข ๋ฅ :AVLํธ๋ฆฌ Red-Black ํธ๋ฆฌ โจ AVL ํธ๋ฆฌ๋ ธ๋๊ฐ ์ฝ์ , ์ญ์ ๋ ๋ ํธ๋ฆฌ์ ๊ท ํ์ ์ฒดํฌํ๊ณ ์ ์งํ๋ ํธ๋ฆฌ๊ฐ ๋ ธ๋์ BF๋ฅผ [-1, 0, 1] ๋ง ๊ฐ์ง๊ฒ ํ์ฌ ๊ท ํ์ ์ ์งBF[Balance .. 2024. 7. 12. ์ด์ง ํ์ ํธ๋ฆฌ (Binary search tree) BST - ์๋ฃ๊ตฌ์กฐ ๐ฉ๐ป Binary search ree๋?์ด์ง ํ์ ํธ๋ฆฌ๋ ์๋์ ๊ท์น์ผ๋ก ๊ตฌ์ฑ๋ ์ด์ง ํธ๋ฆฌ์ด๋ค.์ผ์ซ ์์ ๋ ธ๋์ ํค๋ ๋ถ๋ชจ ๋ ธ๋์ ํค ๋ณด๋ค ์์์ค๋ฅธ์ชฝ ์์ ๋ ธ๋์ ํค๋ ๋ถ๋ชจ ๋ ธ๋์ ํค๋ณด๋ค ํผ๊ฐ๊ฐ์ ์๋ธ ํธ๋ฆฌ๋ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ์ ์ง์ค๋ณต๋ ํค๋ฅผ ํ์ฉํ์ง ์์โ๏ธ ์ด์ง ํ์ ํธ๋ฆฌ์ ํน์ง์ด์ง ํ์ ํธ๋ฆฌ ๊ท์น์ ์ํด ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋จ์ด์ง ํธ๋ฆฌ์ ๋นํด ํ์์ด ๋น ๋ฆ (๊ท ํ ์ ์ง ํ์)๊ท ํ ์ํ : O(logN)๋ถ๊ท ํ ์ํ : O(N)โ๏ธ ํ์์ฐพ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฃจํธ ๋ ธ๋๋ถํฐ ๋น๊ต ์์๋์ ๋น๊ต๋ฅผ ํ์ฌ ์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด ์ผ์ชฝ, ํฌ๋ฉด ์ค๋ฅธ์ชฝ ๋ ธ๋๋ก ์ด๋์ฐพ๋ ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด null ๋ฐํ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋๋ผ๋ ์ต๋ ํธ๋ฆฌ ๋์ด ๋งํผ์ ํ์์ด ์ด๋ฃจ์ด์ง โ๏ธ ์ฝ์ Root ๋ถํฐ ๋น๊ต ์์ (์ค๋ณต ํค ๋ฐ๊ฒฌ ์ ๋ ธ๋๋ฅผ ์ถ.. 2024. 7. 3. java - ๋นํธ ์ฐ์ฐ์ (1L ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ์๋ฉด, ์ด ์ฐ์ฐ์ ์ซ์ 1์ ์ผ์ชฝ์ผ๋ก i๋นํธ๋งํผ ์ด๋์์ผ์ 2์ i์ ๊ณฑ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณผ ์ ์๋ค.1L 20=12^0 = 120=1).1L 21=22^1 = 221=2).1L 22=42^2 = 422=4).1L 23=82^3 = 823=8).์ฌ๊ธฐ์ 1L์ long ํ์ ์ ์ซ์ 1์ ์๋ฏธํ๋ฉฐ ๋นํธ ์ฐ์ฐ์ ์ฌ์ฉํ ๋, ํนํ ํฐ ์ซ์์ ์์ ํ ๋ int ๋์ long์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์์ ํ๋ค. ์ฆ, (1L 2^i๋ฅผ ๊ณ์ฐํ๋ ๊ฐ๋จํ๊ณ ํจ์จ์ ์ธ ๋ฐฉ๋ฒ์ด๋ฉฐ ๋นํธ ์ฐ์ฐ์ ์ฌ์ฉํ๋ฉด ๊ณฑ์ ์ ์ฌ์ฉํ์ง ์๊ณ ๋ ์ด ๊ณ์ฐ์ ๋น ๋ฅด๊ฒ ์ํํ ์ ์๋ค. โจ๋นํธ์ฐ์ฐ๋ค์ ์ข ๋ฅ๋นํธ ์ฐ์ฐ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ณ์ฐ์ ํ ์ ์์ด์, ํนํ ํฐ ๋ฐ์ดํฐ์ ์ ์ฒ๋ฆฌํ ๋ ์ ์ฉํ๋ค.์๋๋ .. 2024. 6. 26. ์ด์ 1 2 3 ๋ค์