[TIL] 126 [C#] 우선순위 큐 (Priority Queue)
카테고리: Til
Graph
우선순위 큐(Priority Queue)
우선순위 큐(Priority Queue)는 가장 우선순위가 높은 요소를 가장 먼저 처리하는 자료구조입니다.
일반적인 큐(FIFO, First-In-First-Out)와는 달리, 우선순위 큐는 요소가 삽입될 때 각 요소에 우선순위를 부여하고, 우선순위에 따라 요소를 처리합니다.
PriorityQueue<data, rank>()
data = 데이터, rank = 순위.
최소 힙
using System.Text;
class Program
{
static void Main()
{
StringBuilder sb = new StringBuilder();
int input = Convert.ToInt32(Console.ReadLine());
var minHeap = new PriorityQueue<int, int>();
for (int i = 0; i < input; i++)
{
int x = Convert.ToInt32(Console.ReadLine());
if (x == 0)
{
if (minHeap.Count > 0)
{
sb.AppendLine(minHeap.Dequeue().ToString());
}
else
{
sb.AppendLine("0");
}
}
else
{
minHeap.Enqueue(x, x);
}
}
Console.WriteLine(sb.ToString());
}
}
특징
- 우선순위에 따라 처리: 요소는 항상 우선순위가 높은 순서로 처리됩니다.
- 정렬된 삽입 및 삭제: 삽입,삭제 시 자동으로 우선순위에 맞게 정렬합니다.
- 힙(Heap)을 기반으로 구현: 보통 우선순위 큐는 힙 자료구조를 기반으로 구현되며, 삽입과 삭제가 효율적입니다.
잡담, 일기?
우선순위 큐(Priority Queue)는 가장 우선순위가 높은 요소를 가장 먼저 처리하는 자료구조입니다.
댓글남기기