[Python] ํ๐ฒ์ด๋ ๋ฌด์์ด์ง ?
ํ์ด๋?
ํ์ด๋, ํธ๋ฆฌ ๊ตฌ์กฐ ์ค์์ ์์ ์ด์งํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ํ์ ์ต๋๊ฐ๊ณผ ์ต์๊ฐ์ ๊ตฌํ๋๋ฐ์ ์์ฃผ ํ์ํ๋ค. ๊ทธ ์ด์ ๋ ํ์ ์ดํดํ๊ณ ๋๋ฉด ํ์คํ ์๊ฒ ๋ ๊ฒ์ด๋ค.
ํ์ด ๋๊ธฐ์ํ ๋ง์กฑ ์กฐ๊ฑด์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ์์๋ ธ๋๋ณด๋ค ๋ถ๋ชจ๋ ธ๋์ ๊ฐ์ด ๋ ์ปค์ผ ํ๋ค.
- ์ผ์ชฝ ์์๋ ธ๋๋ณด๋ค ์ค๋ฅธ์ชฝ ์์๋ ธ๋์ ๊ฐ์ด ๋ ์ปค์ผ ํ๋ค.
ํ์๋ ์์ ๊ฐ์ด ๋๊ฐ์ง์ ์ข ๋ฅ๊ฐ ์๋๋ฐ, ๋ฃจํธ๋ ธ๋๊ฐ ๊ฐ์ฅ ์์ ์ต์ ํ, ๋ฃจํธ๋ ธ๋๊ฐ ๊ฐ์ฅ ํฐ ์ต๋ ํ์ด ์๋ค.
ํ์ด์ฌ์์๋ ์ด๋ฅผ ์ฌ์ฉํ๊ธฐ ํธํ๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ๊ณตํ๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ๋ฌ์ค๊ธฐ
import heapq
import heapq
heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ต์ํ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋๋ก ํ๋ค. ๋ฆฌ์คํธ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๊ฐ ์ ๊ทผ์ผ๋ก๋ ํ์ฉ์ด ๊ฐ๋ฅํ๊ณ , ํ์ด๊ธฐ ๋๋ฌธ์ ํธ๋ฆฌ๊ตฌ์กฐ ํ์ ๋ฐฉ์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์ง๋ค.
ํ์ ์ธ๋ฑ์ค
ํ์ ์ธ๋ฑ์ค๋ ๊ฐ ๊น์ด์ ๋ฐ๋ผ ์ธ๋ฑ์ค ๊ฐ์ด ์ฃผ์ด์ง๋ค.
์ด๋ฏธ์ง์ถ์ฒ
n๊ฐ์ ์์๋ฅผ ๊ฐ์ง๋ ๋ฆฌ์คํธ๋ฅผ ํ์ผ๋ก ๋ณํํ๋ฉด,
- ์ผ์ชฝ ์์๋ ธ๋์ ์ธ๋ฑ์ค : 2n
- ์ค๋ฅธ์ชฝ ์์๋ ธ๋์ ์ธ๋ฑ์ค : 2n + 1
๊ธฐ์กด ๋ฆฌ์คํธ๋ฅผ ํ์ผ๋ก ์ฌ์ฉํ๊ธฐ
heapify() ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
list1 = [1, 2, 3, 4]
heapq.heapify(list1)
ํ์ ๊ฐ ์ถ๊ฐํ๊ธฐ
heap ์ด๋ผ๊ณ ์ ์ธํด๋์ heapq์ 3 ์ด๋ผ๋ ๊ฐ์ ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ๋ค.
heapq.heappush(heap, 3)
heapq ๋ด์ ์ ์ ํ ์์น๋ฅผ ์๋์ผ๋ก ์ฐพ์ ์ถ๊ฐํ๋ค.
ํ์์ ๊ฐ ์ญ์ ํ๊ธฐ
heapq.heappop(heap)
heapq.heappop(heap)
ํ์์ ๊ฐ์ฅ ์์ ๊ฐ์ ์ญ์ ํ์ฌ ๋ฐํํ๋ค.
๊ฐ์ฅ ์์ ๊ฐ์ด ์ญ์ ๋ ํ์๋ ๋จ์ ํ ๋ด๋ถ์ ๊ฐ์ฅ ์์ ๊ฐ์ด ์๋ฆฌ๋ฅผ ๋์ฒดํ๋ค.
์ต๋ํ์?
์์์ ํ์ ์ต์ํ๊ณผ ์ต๋ํ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋๋ฐ, heapq ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ต์ํ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด heapq๋ฅผ ์ต๋ํ์ผ๋ก ์ด๋ป๊ฒ ์ฌ์ฉํ ์ ์์๊น?
๋ฐ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ ๊ฒ์ด๋ค โ๏ธโ๏ธ
ํ์ ์ฌ์ฉํ๋ ๊ฐ์ (์ฐ์ ์์, ๊ฐ)์ ํํ์ธ ํํ๋ก ์ฌ์ฉํ๋ฉด ์ต๋ํ์ผ๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
list2 = [(1, 10), (2, 9), (3, 8), (4, 7)]
heapq.heapify(list2)
์ด๋ ๊ฒ ๋๋ฉด ์ฐ์ ์์์ ์ํด ๋ฃจํธ๋ ธ๋์ ๊ฐ์ด ๊ฐ์ฅ ํฐ ์ต๋ ํ์ผ๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค ๐
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ([Python] ํ๐ฒ์ด๋ ๋ฌด์์ด์ง ?), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@tnfls99/Python-ํ์ด๋-๋ฌด์์ด์ง์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค