์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ํ ์คํธ๋ถ์
- ํ๋ธ๋ฃจ
- ๋ฐ์ดํฐ ๋ถ์
- sap
- ๋ฆฌ์กํธ
- github
- ๋ฐฑ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- ํ๋ธ๋ก
- ํ์ด์ฌ
- ์ฝํ
- ์ฝ๋ฉํ ์คํธ
- ๋ฐ์ดํฐ๋ถ์
- ๋ฅ๋ฌ๋
- erp
- ์๋ง์กด์น์๋น์ค
- ์์ฐ์ด์ฒ๋ฆฌ
- ๋น ๋ฐ์ดํฐ
- abap
- ๊นํ๋ธ
- ํ ์คํธ๋ง์ด๋
- Git
- DFS
- ์๊ณ ๋ฆฌ์ฆ
- nlp
- AWS
- tableau
- react
- ์ธ๊ณต์ง๋ฅ
- AI
- Today
- Total
๋ชฉ๋ก์ ์ฒด ๊ธ (352)
DATA101

์๋ ํ์ธ์, ์ค๋์ ๋ฆฌ์คํธ(list) ๋ฐ์ดํฐ ํ์ ์ ์ ์ฉํ ํจ์๋ก์ append(), sort(), reverse(), insert(), count(), remove()์ ๋ํด ์๊ฐํด ๋๋ฆฝ๋๋ค. ๋ด์ฉ์ด ๊ฐ๋จํ๋ ์๋ ํ์ ์์๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์! ํ ์ฌ์ฉ๋ชฉ์ ๋ฐ ์ค๋ช ๋ฉ์๋ ์๊ฐ ๋ณต์ก๋ ๋ฐ์ดํฐ ์ถ๊ฐ(๋งจ ๋ค์์๋ถํฐ ์ถ๊ฐ) ๋ฆฌ์คํธ ์ด๋ฆ.append(์ถ๊ฐํ ๋ฐ์ดํฐ) \(O(1)\) ๋ฐ์ดํฐ ์ ๋ ฌ(์ค๋ฆ์ฐจ์ ์ ๋ ฌ) ๋ฆฌ์คํธ ์ด๋ฆ.sort() \(O(NlogN)\) ๋ฐ์ดํฐ ์ ๋ ฌ(๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ) ๋ฆฌ์คํธ ์ด๋ฆ.sort(reverse = True) \(O(NlogN)\) ๋ฆฌ์คํธ ๋ด ์์ ์์ ๋ค์ง๊ธฐ ๋ฆฌ์คํธ ์ด๋ฆ.reverse() \(O(N)\) ํน์ ์ธ๋ฑ์ค์ ์์ ์ฝ์ ๋ฆฌ์คํธ ์ด๋ฆ.insert(์ฝ์ ํ ์์น์ ์ธ๋ฑ์ค, ์ฝ์ ํ ..

์๋ ํ์ธ์, ์ค๋์ ๊ทธ๋ํ(graph) ์๋ฃ๊ตฌ์กฐ์ ํธ๋ฆฌ(tree) ์๋ฃ๊ตฌ์กฐ์ ์ฐจ์ด์ ๋ํด ์์๋ด ๋๋ค. ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ์ ๋ํ ์์ธํ ์ค๋ช ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์! heytech.tistory.com/66 [์๋ฃ๊ตฌ์กฐ] ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์์๋ณด์!(๋ ธ๋, ๊ฐ์ ) ์๋ ํ์ธ์, ์ค๋์ ๊ทธ๋ํ(graph) ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ์ ๊ตฌ์ฑ ๊ทธ๋ํ๋ ๊ทธ๋ฆผ 1 ๊ณผ ๊ฐ์ด ๋ ธ๋(Node)์ ๊ฐ์ (Edge)์ผ๋ก ํํ๋ฉ๋๋ค. ์ด๋ ๋ ธ๋๋ ์ ์ (Vertext)์ด๋ผ๊ณ ๋ heytech.tistory.com ๋ด์ฉ์ด ๊ฐ๋จํ๋ฏ๋ก ์๋ ํ 1 ๊ณผ ๊ฐ์ด ์ ๋ฆฌํด ๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ ํธ๋ฆฌ ์๋ฃ๊ตฌ์กฐ ๋ฐฉํฅ์ฑ(directionality) ๋ฌด-/๋ฐฉํฅ ๊ทธ๋ํ only ๋ฐฉํฅ ๊ทธ๋ํ ์ํ์ฑ(circ..

๋ณธ ํฌ์คํ ์์๋ ์ต๋จ๊ฒฝ๋ก(๊ธธ ์ฐพ๊ธฐ)์๊ณ ๋ฆฌ์ฆ ์ค์์๋ ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๐ ๋ชฉ์ฐจ 1. ์ต๋จ๊ฒฝ๋ก(๊ธธ ์ฐพ๊ธฐ) ์๊ณ ๋ฆฌ์ฆ์ด๋? 2. ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ 3. ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ ํน์ง 4. ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋์ ๊ณผ์ 5. ํ๋ก์ด๋ ์์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ(Python) 1. ์ต๋จ๊ฒฝ๋ก(๊ธธ์ฐพ๊ธฐ) ์๊ณ ๋ฆฌ์ฆ์ด๋? ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ธธ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ๋ง ๊ทธ๋๋ก ํน์ ์ง์ ๊น์ง ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋๋ฌํ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ด๋ฒ ํฌ์คํ ์์๋ ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ์์ ๋น์ถ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ ์ ํ 2๊ฐ์ง ์ค 2๋ฒ์งธ, ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์๋ด ๋๋ค. ๋ค์ต์คํธ๋ผ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ(Dijkstra Algorithm) ํ๋ก์ด๋-์์ ์๊ณ ๋ฆฌ์ฆ(Floyd-Warshal..

๊ฐ๋จํ ๋ด์ฉ์ด๋ฏ๋ก ๋ฐ๋ก ๋ณธ๋ก ์ผ๋ก ๋ค์ด๊ฐ์ฃ ! 1. ์ ์ ๋ฐ ํน์ง ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ (comprehension)์ ๋ฆฌ์คํธ๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ๋ฒ ์ค ํ๋๋ก์ ๋๊ดํธ('[]') ์์ ์กฐ๊ฑด๋ฌธ์ด๋ ๋ฐ๋ณต๋ฌธ์ ๋ฃ๋ ๋ฐฉ์์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์ด๊ธฐํํ๋ ๋ฐฉ์์ ๋๋ค. ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ํ์ํ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ ๋ ๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ ์ง๊ด์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ค๋๋ค. ์๋ ์์์ ํจ๊ป ์ดํด๋ณด์ฃ . 2. ์์1: ์ผ๋ฐ์ ์ธ ๋ฆฌ์คํธ ์์ฑ ๋ฐฉ๋ฒ๊ณผ ๋น๊ต ์์๋ก์ ๊ฐ๋จํ๊ฒ 1๋ถํฐ 100๊น์ง์ ์ ์ ์ค์์ ์ง์๋ง ํฌํจํ๋ ๋ฆฌ์คํธ๋ฅผ ์์ฑํด ๋ณด๊ฒ ์ต๋๋ค. ํนํ ๋ฐ๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ ๊ฐ๊ฐ ๋๋์ด ์ฌ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋์ด ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. (1) ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ ๋จผ์ , ๋ฆฌ์คํธ๋ฅผ ์ง์ ์์ฑํ๊ณ , ๋ฐ๋ณต๋ฌธ์ ์ํํ๊ณ ๊ทธ ์์์ ์กฐ๊ฑด๋ฌธ์ ์ํ..

๐ ๋ชฉ์ฐจ 1. ์ต๋จ๊ฒฝ๋ก(๊ธธ์ฐพ๊ธฐ) ์๊ณ ๋ฆฌ์ฆ์ด๋? 2. ๋ค์ต์คํธ๋ผ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ด๋? 3. ๋ค์ต์คํธ๋ผ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๋์ ๊ณผ์ 4. ๊ตฌํ ๋ฐฉ๋ฒ1: ์ผ๋ฐ์ ์ธ ๊ตฌํ 4.1. ์ฝ๋ ํด์ค 4.2. ์ ์ฒด ์ฝ๋ 4.3. ์๊ฐ ๋ณต์ก๋ 5. ๊ตฌํ ๋ฐฉ๋ฒ2: ์๊ฐ ๋ณต์ก๋ ๊ฐ์ 5.1. ์ฐ์ ์์ ํ(Priority Queue) ์๋ฃ๊ตฌ์กฐ 5.2. ํ(Heap) ์๋ฃ๊ตฌ์กฐ 5.3. ์ฐ์ ์์ ํ ์๋ฃ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ ๋์ ๊ณผ์ 5.4. ์ฐ์ ์์ ํ ์๋ฃ๊ตฌ์กฐ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ(Python) 1. ์ต๋จ๊ฒฝ๋ก(๊ธธ์ฐพ๊ธฐ) ์๊ณ ๋ฆฌ์ฆ์ด๋? ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ์ ๊ธธ์ฐพ๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ๋ง ๊ทธ๋๋ก ํน์ ์ง์ ๊น์ง ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋๋ฌํ ์ ์๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ์์ ๋น์ถ ์ต๋จ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ ์ ํ์ ์๋์ ๊ฐ์ต๋..

๐ ๋ชฉ์ฐจ 1. ํ ์๋ฃ๊ตฌ์กฐ 2. ํ ์๋ฃ๊ตฌ์กฐ๋ ์ธ์ ์ฌ์ฉํ ๊น? 3. ํ ์๋ฃ๊ตฌ์กฐ์ ์ข ๋ฅ 4. ํ ์๋ฃ๊ตฌ์กฐ์ ๋์ ๊ณผ์ (์ต์ ํ) 4.1. ๋ฐ์ดํฐ ์ฝ์ 4.2. ๋ฐ์ดํฐ ์ญ์ 5. ํ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ(Python) 5.1. heapq ์ ์ 5.2. ํ ๋ฐ์ดํฐ ์ฝ์ (heappush) 5.3. ํ ๋ฐ์ดํฐ ์ญ์ (heappop) 5.4. ๋ฆฌ์คํธ๋ฅผ ํ์ผ๋ก ๋ณ๊ฒฝ(heapify) 1. ํ ์๋ฃ๊ตฌ์กฐ ํ ์๋ฃ๊ตฌ์กฐ๋ ๊ฐ์ฅ ๋์(ํน์ ๊ฐ์ฅ ๋ฎ์) ์ฐ์ ์์(e.g., ์ต๋๊ฐ, ์ต์๊ฐ)๋ฅผ ๊ฐ์ง๋ ๋ ธ๋๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๊ธฐ ์ํด ๊ณ ์๋ *์์ ์ด์งํธ๋ฆฌ(Complete Binary Tree) ๊ธฐ๋ฐ์ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ๋ฐ๋ผ์ ๊ฐ์ฅ ๋์(๋๋ ๊ฐ์ฅ ๋ฎ์) ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ๋ ธ๋๊ฐ ํญ์ ๋ฃจํธ ๋ ธ๋(root node)์ ์ค๋ ๊ฒ ํน์ง์ ๋๋ค. * ์..

๐ ๋ชฉ์ฐจ 1. ์ฐ์ ์์ ํ(Priority Queue)๋? 2. ํ(Heap) ์๋ฃ๊ตฌ์กฐ 2.1. ํ ์๋ฃ๊ตฌ์กฐ๋? 2.2. ์ฐ์ ์์ ํ ๊ตฌํ ๋ฐฉ์: ๋ฆฌ์คํธ vs ํ 3. ํ ๊ธฐ๋ฐ์ ์ฐ์ ์์ ํ ๊ตฌํ(Python) 3.1. heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๊ฐ 3.1.1. ํ ์์ ์ถ๊ฐ(heappush) 3.1.2. ํ ์์ ์ญ์ (heappop) 3.1.3. ๋ฆฌ์คํธ๋ฅผ ํ์ผ๋ก ๋ณ๊ฒฝ(heapify) 3.2. ํ ๊ธฐ๋ฐ์ ์ฐ์ ์์ ํ ๊ตฌํ ์์ 1. ์ฐ์ ์์ ํ(Priority Queue)๋? ์ฐ์ ์์ ํ๋ ๋ง ๊ทธ๋๋ก ์ฐ์ ์์๊ฐ ๊ฐ์ฅ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ์ถํ๋ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ํ(Queue) ์๋ฃ๊ตฌ์กฐ๋ ์ ์ ์ ์ถ ๋ฐฉ์์ผ๋ก์ ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ์ถํฉ๋๋ค. ๊ฐ๋จํ๊ฒ ํน์ง์ด ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ค์ ..

๋ณธ ํฌ์คํ ์์๋ ๊ทธ๋ํ(graph) ์๋ฃ๊ตฌ์กฐ์ ๋ํด ์์๋ด ๋๋ค. ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ์ ๊ตฌ์ฑ ๊ทธ๋ํ๋ ๊ทธ๋ฆผ 1 ๊ณผ ๊ฐ์ด ๋ ธ๋(Node)์ ๊ฐ์ (Edge)์ผ๋ก ํํ๋ฉ๋๋ค. ์ด๋ ๋ ธ๋๋ ์ ์ (Vertext)์ด๋ผ๊ณ ๋ ๋ถ๋ฆฝ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ ธ๋์ ๊ฐ์ ์ ๊ฐ๊ฐ ๋์์ ๋์๋ฅผ ์๋ ๋๋ก๋ฅผ ์์๋ก ๋ง์ด ํํ๋ฉ๋๋ค. ์ฆ, A ๋์(๋ ธ๋)์ B ๋์(๋ ธ๋)๊ฐ ์์ ๋, A ๋์์์ B ๋์๋ก ์ด๋ํ๊ธฐ ์ํด ๋๋ก(๊ฐ์ )๋ฅผ ๊ฑฐ์น๋ค๊ณ ์๊ฐํ์๋ฉด ๋ ธ๋์ ๊ฐ์ ์ ๋ํ ์ดํด๊ฐ ์ฌ์ธ ๊ฒ์ ๋๋ค. ๊ทธ๋ํ ํ์? ๊ทธ๋ํ ํ์์ด๋ ํ๋์ ๋ ธ๋์์ ์์ํด์ ๋ค๋ฅธ ๋ ธ๋๋ค์ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ ธ๋ ์ธ์ ? ๋ ๋ ธ๋๊ฐ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋์ด ์๋ค๋ฉด, '๋ ๋ ธ๋๋ ์ธ์ (Adjacent)ํด ์๋ค'๋ผ๊ณ ๋งํฉ๋๋ค. ๊ทธ๋ํ ์๋ฃ๊ตฌ์กฐ ๊ด๋ จ ์ฉ์ด ์ ๋ฆฌ ๊ทธ๋ํ(ํธ..