문제링크 : https://www.acmicpc.net/problem/19598
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = INT_MAX;
int N, B, C; //강의 갯수, 시작 시간, 종료 시간
int cnt=1; //최소 강의실
vector<pii>v;
priority_queue<int, vector<int>, greater<int>> pq;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for(int i=0; i<N; i++)
{
cin >> B >> C;
v.push_back({B, C});
}
sort(v.begin(), v.end());
for(int i=0; i<v.size(); i++)
{
auto [s, e] = v[i];
if(pq.empty()) pq.push(e);
else
{
if(pq.top() > s) cnt++; //강의실 추가
else pq.pop(); //기존 강의실 이용
pq.push(e);
}
}
cout << cnt;
return 0;
}
백준 1374번 강의실 문제와 입력받는 부분만 살짝 다르고 사실상 같은 코드로 통과 가능한 문제이다.
참고링크 : https://blob-thinking.tistory.com/684
'백준 > 골드' 카테고리의 다른 글
[백준 3151번] 합이 0 (C++) (0) | 2024.07.05 |
---|---|
[백준 2141번] 우체국 (C++) (0) | 2024.07.05 |
[백준 1374번] 강의실 (C++) (0) | 2024.07.03 |
[백준 11000번] 강의실 배정 (C++) (0) | 2024.03.21 |
[백준 2230번] 수 고르기 (C++) (0) | 2024.03.17 |