티스토리 뷰
📌heapq
다익스트라 최단 경로 알고리즘을 포함해 다양한 알고리즘에서 우선순위 큐 기능을 구현하고자 할 때 사용
파이썬의 힙은 최소 힙으로 구성(최소힙: 최상단 원소가 항상 가장 작은 원소)
단순히 원소를 힙에 전부 넣었다가 빼는 것만으로도 시간 복잡도 O(NlogN)에 오름차순 정렬이 완료
📌heapq 메서드
heapq.heappush(): 힙에 원소 삽입
heapq.heappop(): 힙에서 원소 꺼냄
📌힙 정렬을 heapq로 구현하는 코드
import heapq
def heapsort(iterable):
h = [] # 힙
result = [] # 결과 리스트
# 모든 원소를 차례대로 힙에 삽입
for value in iterable:
heapq.heappush(h, value)
# 힙에 삽입된 모든 원소를 차례대로 리스트에 꺼내어 담기
for _ in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])
print(result)
📌참고
이것이 취업을 위한 코딩 테스트다 with 파이썬
IT 취준생이라면 누구나 입사하고 싶은 카카오・삼성전자・네이버・라인!취업의 성공 열쇠는 알고리즘 인터뷰에 있다! IT 취준생이라면 누구나 가고 싶어 하는 카카오, 라인, 삼성전자의 2016년
www.google.com
'코딩테스트' 카테고리의 다른 글
위에서 아래로 (1) | 2024.10.21 |
---|---|
파이썬의 정렬 라이브러리 (1) | 2024.10.19 |
함수, global 키워드, 람다 표현식 (0) | 2024.10.18 |
파이썬 리스트 자료형 (1) | 2024.10.18 |
계수 정렬 (0) | 2024.10.18 |