File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed
weekly/week05/BOJ_1781_컵라면 Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ #include < iostream>
2+ #include < vector>
3+ #include < queue>
4+ #include < algorithm>
5+
6+ using namespace std ;
7+
8+ int main () {
9+ int n;
10+ cin >> n;
11+
12+ vector<pair<int , int >> v;
13+ for (int i = 0 ; i < n; i++) {
14+ int a, b;
15+ cin >> a >> b;
16+ v.push_back ({ a,b });
17+ }
18+
19+ // 데드라인 순으로 정렬
20+ sort (v.begin (), v.end ());
21+
22+ // 처리 가능한 과제 저장
23+ priority_queue<int ,vector<int >,greater<int >> pq;
24+
25+ for (int i = 0 ; i < n; i++) {
26+ int deadline = v[i].first ;
27+ int cnt = v[i].second ;
28+ pq.push (cnt);
29+
30+ // 데드라인을 초과하는 경우 가장 개수가 작은 것을 버린다.
31+ // v[i]를 처리하기 위해서는 pq의 크기가 deadline보다 작거나 같아야 한다.
32+ if (pq.size () > deadline) {
33+ pq.pop ();
34+ }
35+ }
36+
37+ long long ans = 0 ;
38+ while (!pq.empty ()) {
39+ ans += pq.top ();
40+ pq.pop ();
41+ }
42+
43+ cout << ans;
44+ }
You can’t perform that action at this time.
0 commit comments