λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Python/문법

[python] νž™(Heap) - heapq

728x90

πŸ’₯ νž™ 자료ꡬ쑰

 

  • 데이터λ₯Ό μ •λ ¬λœ μƒνƒœλ‘œ μ €μž₯ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 파이썬 heapq
  • μ΅œλŒ€, μ΅œμ†Ÿκ°’μ„ κ°€μ Έ μ˜¬λ•Œ 많이 μ‚¬μš©

 

πŸ’₯ νž™ ν•¨μˆ˜

 

1. heap 생성

heap = []  

 

2. heap μ›μ†Œ μΆ”κ°€

heapq.heappush(heap,4)

 

3. heap μ›μ†Œ μ‚­μ œ , κ°€μž₯ μž‘μ€ μ›μ†Œ μ‚­μ œ ν›„ κ·Έ κ°’ 리턴 

heapq.heappop(heap)

 

4. μ΅œμ†Ÿκ°’ μ‚­μ œ ν•˜μ§€ μ•Šκ³  μ–»κΈ°

heap = [0]  

 

5. κΈ°μ‘΄ 리슀트λ₯Ό νž™μœΌλ‘œ λ³€ν™˜

heapq.heapify(heap)

 

import heapq
heap = []


# νž™ μ›μ†Œ μΆ”κ°€
heapq.heappush(heap,4)
heapq.heappush(heap,1)
print(heap)

>>> [4,1]


# νž™ μ›μ†Œ μ‚­μ œ
print(heapq.heappop(heap))
print(heap)

>>> 1
>>> [4]


#μ΅œμ†Ÿκ°’ μ‚­μ œ ν•˜μ§€ μ•Šκ³  μ–»κΈ°
print(heap[0])

>>> 4


# κΈ°μ‘΄ 리슀트λ₯Ό νž™μœΌλ‘œ λ³€ν™˜
heap = [4,5,6,2,1]
heapq.heapify(heap)
print(heap)

>>>[1,2,4,5,6]

 

 

πŸ’₯ νž™ μ •λ ¬

 

import heapq

def heap_sort(nums):
	heap = []
    for num in nums:
    	heapq.heappush(heap,num)
        
	sorted_nums=[]
	while heap:
    	sorted_nums.append(heapq.heappop(heap))
    return sorted_nums
    
print(heap_sort([4,8,1,2,6,5]))

>>>[1,2,4,5,6,8]

 

 

 

 

 

 

'Python > 문법' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[python] λ¬Έμžμ—΄ μ•ž r  (0) 2023.10.29
[python] list(set()) / zip()/ map()/ sep() ν•¨μˆ˜  (0) 2023.10.28
[python] input() ν•¨μˆ˜  (0) 2023.10.16
[python] map ν•¨μˆ˜  (0) 2023.07.25