[백준/BOJ] 19598. 최소 회의실 개수 [Gold 5]

jychan99·2022년 2월 24일
0
post-thumbnail
  1. 최소 회의실 개수

문제출처 : https://www.acmicpc.net/problem/19598

code

#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

int main()
{
    int N, i, x, y, last = 0, meeting_room = 0;
    vector<pair<int, int>> arr;
    priority_queue<int>pq;
    cin >> N;
    for (i = 0; i < N; i++)
    {
        cin >> x >> y;
        arr.push_back({ x,y });
        if (last <= y)
            last = y;
    }

    sort(arr.begin(), arr.end());

    pq.push(-arr[0].second);
    for (i = 1; i < N; i++)
    {
        if (arr[i].first >= -pq.top())
            pq.pop();

        pq.push(-arr[i].second);

        if (meeting_room < pq.size())
            meeting_room = pq.size();
    }

    cout << meeting_room;

    return 0;
}

우선순위 큐에 대한 이해를 물어보는 문제였던것 같다.
우선순위 큐에 대한 문제를 작년에 풀어보고 안풀어본것 같아서 블로그에 올린문제를 다시 한번 보면서 복습하면서 했다.
우선순위 큐는 가장 작은 값을 top으로 두는데 푸쉬할때 음수로 넣으면 절대값이 가장 작은 값이 top을 유지하게 될것이다.

profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐥

0개의 댓글