- Today
- Total
๋ชฉ๋กํ ์๋ฃ๊ตฌ์กฐ (2)
DATA101
๐ ๋ชฉ์ฐจ 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) ์๋ฃ๊ตฌ์กฐ๋ ์ ์ ์ ์ถ ๋ฐฉ์์ผ๋ก์ ๊ฐ์ฅ ๋จผ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ์ถํฉ๋๋ค. ๊ฐ๋จํ๊ฒ ํน์ง์ด ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ค์ ..