반응형
이 문제는 위의 문제와 완전 동일하다고 볼 수 있다. 이 문제를 풀기 위해서 위의 문제를 먼저 풀어보고 해설을 읽고나서 풀어보길 추천한다.
#include <iostream>
#include <queue>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n; cin >> n;
vector <pair <int, int>> v;
priority_queue<int, vector<int>, greater<int>>q;
for (int i = 0; i < n; i++) {
int a, b; cin >> a >> b;
v.push_back({ a,b });
}
sort(v.begin(), v.end());
for (int i = 0; i < n; i++) {
q.push(v[i].second);
if (v[i].first < q.size())q.pop();
}
int sum = 0;
while (!q.empty()) {
sum += q.top();
q.pop();
}
cout << sum;
}
반응형
'백준 > 그리디' 카테고리의 다른 글
[백준 12845번 / C++] 모두의 마블 (0) | 2022.03.31 |
---|---|
[백준 1715번 / C++] 카드 정렬하기 (0) | 2022.03.02 |
[백준 11000번 / C++] 강의실 배정 (0) | 2022.02.21 |
[백준 1202번 / C++] 보석 도둑 (0) | 2022.01.18 |
[백준 2109번 / C++] 순회강연 (0) | 2022.01.14 |
댓글