문제
풀이
그리디, 우선순위 큐
위의 문제와 풀이가 같은 문제
코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
vector<pair<int, int>> v;
priority_queue<int, vector<int>, greater<int>> pq;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
int N;
cin >> N;
int answer = 0;
for (int i = 0; i < N; ++i)
{
int start, end;
cin >> start >> end;
v.push_back(make_pair(start, end));
}
sort(v.begin(), v.end());
for (int i = 0; i < N; ++i)
{
int current_start = v[i].first;
int current_end = v[i].second;
if (!pq.empty())
{
// 가장 빨리 끝나는 수업이 현재 시작하는 강의보다 빨리 끝난다면 같은 강의실을 사용할 수 있다.
if (current_start >= pq.top())
{
pq.pop();
}
}
pq.push(current_end);
answer = max(answer, (int)pq.size());
}
cout << answer;
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준][C++] 1766: 문제집 (2) | 2024.03.01 |
---|---|
[백준][C++] 1655: 가운데를 말해요 (0) | 2024.02.28 |
[백준][C++] 4964: 섬의 개수 (1) | 2024.02.26 |
[백준][C++] 15903: 카드 합체 놀이 (0) | 2024.02.22 |
[백준][C++] 10219: Meats On The Grill (0) | 2024.02.20 |