heap
- 최소/ 최대 원소를 빠르게 찾을 수 있도록 만들어진 자료구조
- 완전 이진트리(complete binary tree)로 구성됨
- 큐에 우선순위 개념을 도입한 우선순위 큐구조를 사용하며 우선순위가 높은 데이터가 먼저 나간다.
- Python heapq의연산종류와 시간복잡도
- 힙 구성 (heapify) - O(NlogN)
- 삽입 (heappush) - O(logN)
- 삭제 (heappop) - O(logN)
Programmers heap 문제 - 더 맵게

https://programmers.co.kr/learn/courses/30/lessons/42626
import heapq
def solution(scoville, K):
answer = 0
heapq.heapify(scoville)
for i in range(len(scoville)):
try:
# 가장 작은 수 POP
scov1 = heapq.heappop(scoville)
if scov1 < K:
# 두번째로 작은 수 pop
scov2 = heapq.heappop(scoville)
heapq.heappush(scoville , scov1 + scov2 * 2)
else:
answer = i
break
except:
answer = -1
break
return answer'ETC > Algorithm' 카테고리의 다른 글
| [Algorithm - DFS/BFS] 그래프와 깊이/너비 우선 탐색 (Programmers - 여행경로) (2) | 2022.06.22 |
|---|---|
| [Algorithm - DP] Dynamic Programming 이란 (Programmers - N으로 표현) (3) | 2022.06.21 |