ํ์ ์์ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ผ๋ก ์ฐ์ ์์ ํ๋ฅผ ์ํ์ฌ ๋ง๋ค์ด์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์์ ์ด์งํธ๋ฆฌ๋ ๋ง์ง๋ง์ ์ ์ธํ ๋ชจ๋ ๋ ธ๋์์ ์์๋ค์ด ๊ฝ ์ฑ์์ง ์ด์งํธ๋ฆฌ๋ฅผ ๋งํ๋ค.
์ฐ์ ์์ ํ๋ ์ฐ์ ์์์ ๊ฐ๋ ์ ํ์ ๋์ ํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ค์ด ์ฐ์ ์์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ฐ์ ์์๊ฐ ๋์ ๋ฐ์ดํฐ๊ฐ ๋จผ์ ์ถ์ถ๋๋ ๊ตฌ์กฐ์ด๋ค.
๋ถ๋ชจ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋๋ค์ ๊ฐ๋ณด๋ค ํญ์ ํฌ๋ค
๋ถ๋ชจ ๋ ธ๋์ ๊ฐ์ด ์์ ๋ ธ๋๋ค์ ๊ฐ๋ณด๋ค ํญ์ ์๋ค
ํ์ ์ ์ฅํ๋ ํ์ค์ ์ธ ์๋ฃ๊ตฌ์กฐ๋ ๋ฐฐ์ด์ด๋ค.
ํ์์์ ๋ถ๋ชจ๋ ธ๋์ ์์๋ ธ๋์ ๊ด๊ณ
์๋ก์ด ์์๊ฐ ๋ค์ด์ค๋ฉด ๋ง์ง๋ง ๋ ธ๋์ ์ด์ด์ ์ฝ์ ํ๊ณ ๋ถ๋ชจ ๋ ธ๋๋ค๊ณผ ๊ตํํด์ ํ์ ์ฑ์ง์ ๋ง์กฑํ๋ฉด ๋ฐ๋ณตํ๋ค.
๋ฃจํธ ๋ ธ๋๊ฐ ์ญ์ ๋๋ฉด ์ญ์ ๋ ๋ฃจํธ๋ ธ๋์ ํ์ ๋ง์ง๋ง ๋ ธ๋๋ฅผ ๊ฐ์ ธ์จ ํ ํ์ ์ฌ๊ตฌ์ฑํ๋ค.
์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ์ฐพ๋ ์ฐ์ฐ์ ๋น ๋ฅด๊ฒ ํ ๋ heapq
๋ชจ๋์ ์ฌ์ฉํ๋ค.
heapq
๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ต์ํ์ ๋ค๋ฃจ๊ธฐ ๋๋ฌธ์ ์ต๋ํ์ ํํ์ ์ฌ์ฉํ ๋ค๋ฅธ ์๋ น์ด ํ์ํ๋ค.
import heapq
heap = []
heapq.heappush(heap, 50)
heapq.heappush(heap, 10)
heapq.heappush(heap, 20)
result = heapq.heappop(heap)
print(result)
10
๋ง์ฝ ์ด๋ฏธ ๋ฆฌ์คํธ๊ฐ ์์ฑ๋์ด ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด heapfipy
๋ฅผ ํตํด ํ ์๋ฃํ์ผ๋ก ๋ณํํ ์ ์๋ค.
heap2 = [50 ,10, 20]
heapq.heapify(heap2)
print(heap2)
[10, 50, 20]