heapq2 [python]programmers - 더맵게 프로그래머스 Level2 힙(Heap) 더 맵게 참고 : heapq 모듈 사용법 [파이썬] heapq 모듈 사용법 Engineering Blog by Dale Seo www.daleseo.com 소스 코드 import heapq def solution(scoville, K): h = [] # heap c = 0 # 변환 횟수 카운트 for i in scoville : heapq.heappush(h, i) while True : a = heapq.heappop(h) # 최소값을 pop if(a >= K) : # 최소값이 K보다 크면 나머지 값들도 다 K보다 크다 break elif(len(h) == 0 and a < K) : # 최소값 하나 남았는데 K보다 작으면 -1 반환 return -1 b = hea.. 2021. 7. 20. [python] dijkstra 알고리즘 dijkstra(다익스트라) 알고리즘은 source node로 부터 모든 node까지의 최단거리를 구하는 알고리즘이다. 먼저 다른 블로그에서 코드를 보고, 출력을 해보며 작동원리를 이해해보았다. 다익스트라 알고리즘을 구현하기전에 먼저 heapq에 대해 공부해야 했다. heapq는 우선순위큐 를 구현하기 위해 쓰이는 모듈이다. 따로 설치할 필요없이 import heapq 하면 된다. [heapq] 완전 이진 트리 형태 부모 노드 키값이 자식 노드 키값보다 항상 작다(최소힙) 키값의 대소관계는 부모/자식 관계에서만 성립하고, 자식끼리의 대소관계는 없다 heapq 예시 import heapq q = [] heapq.heappush(q, [2, 'D']) heapq.heappush(q, [8, 'B']) hea.. 2021. 3. 22. 이전 1 다음