𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨/ᴀʟɢᴏʀɪᴛʜᴍ

heapq와 deque의 차이

콜라맛갈비 2023. 10. 10. 20:57
728x90
deque - 선입선출
- 동적 배열인 리스트는 큐연산에적합하지 않아 데크를 써야
좋은 성능을낼 수있음   
- 양쪽 끝을 모두 추출할 수 있음
- BFS

from collections import deque
q=deque()
q.append('l')
q.popleft()
heapq - 우선순위 큐
- 최소힙, 최대힙
- 최단경로 탐색하는  다익스트라, 최소값이나 최대값을 빨리 찾아야 할 때
- heappop()을 할 경우 가장 작은 원소부터 추출됨

from heapq import heappush, heappop, heapify
q=[]
heappush(q, 1)
heappop(q)
heapify(arr)

 

Tuple보다는 List가 더 느리기 때문에, 해당 코드의 우선순위 큐에 넣는 원소를 []가 아닌 ()로 감싸주시면 속도 향상

728x90

'𝘼𝙣𝙖𝙡𝙮𝙨𝙞𝙨 > ᴀʟɢᴏʀɪᴛʜᴍ' 카테고리의 다른 글

DFS & BFS  (1) 2023.10.13
그리디 & 구현  (0) 2023.10.12
pass와 continue의 차이  (0) 2023.08.11
[Programmers] 의상 (해시)  (0) 2023.08.03
[Programmers] 가장 큰 수 (정렬)  (0) 2023.08.02