일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 42747
- 오블완
- useoutletcontext
- Outlet
- Recoil
- 프로그래머스
- 티스토리챌린지
- 138476
- Typescript
- usesetrecoilstate
- React
- programmers
- 귤 고르기
- H-index
- Helmet
- userecoilvalue
- 노마드코더
- Today
- Total
오늘도 코딩하나
우선순위 큐(Priority Queue)와 힙(Heap) 본문
우선순위 큐 (Priority Queue)
- 우선순위가 가장 높은 데이터를 가장 먼저 삭제하는 자료구조
Stack vs Queue vs Priority Queue
자료구조 | 추출되는 데이터 |
스택(Stack) | 가장 나중에 삽입된 데이터 |
큐(Queue) | 가장 먼저 삽입된 데이터 |
우선순위 큐(Priority Queue) | 가장 우선순위가 높은 데이터 |
구현방법
우선순위 큐 구현 방식 | 삽입 시간 | 삭제 시간 |
리스트 | O(1) | O(N) |
힙(Heap) | O(logN) | O(logN) |
- 리스트의 경우 삭제할 때 가장 높은 우선순위를 가지는 데이터를 찾기 위해서 선형적인 탐색 시간 소요됨
- 단순히 N 개의 데이터를 힙에 넣었다가 모두 꺼내는 작업만 수행하더라도 그 자체로 정렬이 수행됨
- 시간복잡도는 O(NlogN)
힙 (Heap)
- 완전 이진 트리 자료구조의 일종
- 항상 루트 노드를 제거한다.
- 최소힙
- 루트 노드가 가장 작은 값을 가짐
- 값이 작은 데이터가 우선적으로 제거됨 - 최대힙
- 루트 노드가 가장 큰 값을 가짐
- 값이 큰 데이터가 우선적으로 제거됨
완전 이진 트리 (Complete Binary Tree)
- 루트 노드로부터 시작하여 왼쪽 자식 노드, 오른쪽 자식 노드 순서대로 데이터가 차례대로 삽입되는 트리
최소 힙 구성 함수: Min-Heapify()
- (상향식) 부모 노드로 거슬러 올라가며, 부모보다 자신의 값이 더 작은 경우에 위치를 교체한다.
- 새로운 원소가 삽입되었을 때 / 원소가 제거되었을 때 O(logN)의 시간 복잡도로 힙 성질을 유지하도록 할 수 있다.
- 원소를 제거할 때는 가장 마지막 노드가 루트 노드의 위치에 오도록 한다
- 이후에 루트 노드에서부터 하향식으로 Heapify()를 진행한다.
▶ Programmers 우선순위 큐 문제 (내가 푼 문제들 중)
https://coding-hana.tistory.com/72
[프로그래머스_JS] Lv.3 [1차] 셔틀버스(17678)
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/17678 2. 풀이 · 나의 풀이function solution(n, t, m, timetable) { var answer = ''; let bus = ["09:00"]; for(let k=0; k { const [ah, am] = a.split(":").map(Number); const [bh, bm]
coding-hana.tistory.com
https://coding-hana.tistory.com/75
[프로그래머스_JS] Lv.3 야근 지수(12927)
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 풀이 · 나
coding-hana.tistory.com
### 참고한 강의
https://www.youtube.com/watch?v=AjFlp951nz0
'ALGORITHM' 카테고리의 다른 글
[자료구조] 해시(Hash)_Javascript (0) | 2025.01.07 |
---|