What-is-heap.md
๊ฐ๋
์์ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก ์ฐ์ ์์ ํ๋ฅผ ์ํ์ฌ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ฌ๋ฌ๊ฐ์ ๊ฐ๋ค ์ค์์ ์ต๋๊ฐ์ด๋ ์ต์๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๋๋ก ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ข ๋ฅ
์ต๋ ํ(Max Heap) ๋ถ๋ชจ ๋ ธ๋์ ํค ๊ฐ์ด ์์๋ ธ๋์ ํค๊ฐ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์์ ์ด์ง ํธ๋ฆฌ
์ต์ ํ(Min Heap) ๋ถ๋ชจ ๋ ธ๋์ ํค ๊ฐ์ด ์์ ๋ ธ๋์ ํค ๊ฐ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ์ด์ง ํธ๋ฆฌ

๊ตฌํ
ํ์์์ ๋ถ๋ชจ๋ ธ๋์ ์์ ๋ ธ๋์ ๊ด๊ณ
์ผ์ชฝ ์์์ ์ธ๋ฑ์ค = ๋ถ๋ชจ ์ธ๋ฑ์ค * 2
์ค๋ฅธ์ชฝ ์์์ ์ธ๋ฑ์ค = ๋ถ๋ชจ ์ธ๋ฑ์ค * 2 + 1
๋ถ๋ชจ ์ธ๋ฑ์ค = ์์ ์ธ๋ฑ์ค / 2

Python์์๋ heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ค
์ฝ์

import heapq
arr = [1,9,7,4,3]
node = 2 #์ถ๊ฐํ ๊ฐ
heapq.heappush(node, arr)
์ญ์

import heapq
arr = [1,9,7,4,3]
heapq.heappop(arr)
Last updated