[TIL] 126 [C#] 우선순위 큐 (Priority Queue)

업데이트:

카테고리:

태그: ,


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)는 가장 우선순위가 높은 요소를 가장 먼저 처리하는 자료구조입니다.




📔

댓글남기기