더북(TheBook)

  3. 새로 들어온 데이터를 저장하는 insert() 함수를 작성하겠습니다.

void insert(int data)
{
    if (maxHeap.size() == 0)
    {
        maxHeap.push(data);
        return;
    }

    if (maxHeap.size() == minHeap.size())
    {
        if (data <= get())
            maxHeap.push(data);
        else
            minHeap.push(data);

        return;
    }

    if (maxHeap.size() < minHeap.size())
    {
        if (data > get())
        {
            maxHeap.push(minHeap.top());
            minHeap.pop();
            minHeap.push(data);
        }
        else
            maxHeap.push(data);
        return;
    }

    if (data < get())
    {
        minHeap.push(maxHeap.top());
        maxHeap.pop();
        maxHeap.push(data);
    }
    else
        minHeap.push(data);
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.