우선순위큐

김가영·2021년 4월 1일
0

AlgorithmStudy

목록 보기
12/14
post-thumbnail
post-custom-banner

docs

default 는 최소힙.v[0] 은 항상 최솟값(최댓값)을 유지하지만 나머지 index 들은 순서를 유지할 거라는 보장이 없다.

heapq 이용하기

import heapq

생성하기

heap = []
# 이미 원소가 들어있는 리스트이면,
v = [4,1,2]
heapq.heapify(v)

원소 추가하기

heapq.heappush(heap, 4)
heapq.heappush(heap, 1)
# (우선순위, 원소) 의 형식으로 추가도 가능하다. 
heap2 = []
heapq.heappush(heap2, (1, 4))

원소 삭제하기

print(heapq.heappop(heap)) # 가장 작은 원소를 삭제 후에 그 값을 return 한다. 

삭제하지 않고 얻기

print(heap[0]) - 가장 작은 값/ 큰 값만 얻을 수 있다. 

heappushpop

heappushpop(heap,item)
힙에 item을 푸시한 다음, heap에서 가장 작은 항목을 pop 하고 반환한다. heappush와 heappop을 별도로 호출하는 것보다 더 효율적.

nlargest

nlargest(n, iterable, key = None)

iterable 에 의해 정의된 데이터 집합에서 n개의 가장 큰 요소로 구성된 리스트를 반환.

nlargest

iterable 에 의해 정의된 데이터 집합에서 n개의 가장 작은 요소로 구성된 리스트를 반환.

profile
개발블로그
post-custom-banner

0개의 댓글