λ¬Έμ
ν μ λͺ
ν νμμκ² n(0 β€ n β€ 10,000)κ°μ λνμμ κ°μ° μμ²μ ν΄ μλ€. κ° λνμμλ d(1 β€ d β€ 10,000)μΌ μμ μμ κ°μ°μ ν΄ μ£Όλ©΄ p(1 β€ p β€ 10,000)λ§νΌμ κ°μ°λ£λ₯Ό μ§λΆνκ² λ€κ³ μλ €μλ€. κ° λνμμ μ μνλ dμ pκ°μ μλ‘ λ€λ₯Ό μλ μλ€. μ΄ νμλ μ΄λ₯Ό λ°νμΌλ‘, κ°μ₯ λ§μ λμ λ² μ μλλ‘ μνκ°μ°μ νλ € νλ€. κ°μ°μ νΉμ±μ, μ΄ νμλ ν루μ μ΅λ ν κ³³μμλ§ κ°μ°μ ν μ μλ€.
μλ₯Ό λ€μ΄ λ€ λνμμ μ μν pκ°μ΄ κ°κ° 50, 10, 20, 30μ΄κ³ , dκ°μ΄ μ°¨λ‘λ‘ 2, 1, 2, 1 μ΄λΌκ³ νμ. μ΄λ΄ λμλ 첫째 λ μ 4λ² λνμμ κ°μ°μ νκ³ , λμ§Έ λ μ 1λ² λνμμ κ°μ°μ νλ©΄ 80λ§νΌμ λμ λ² μ μλ€.
μ λ ₯
첫째 μ€μ μ μ nμ΄ μ£Όμ΄μ§λ€. λ€μ nκ°μ μ€μλ κ° λνμμ μ μν pκ°κ³Ό dκ°μ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ μ΅λλ‘ λ² μ μλ λμ μΆλ ₯νλ€.
νμ΄
맨 λ€ μ€μΌμ€λΆν° μ§ λ€κ³ μκ°νλκ² ν¬μΈνΈ
νΉμ λ μ§λ₯Ό κΈ°μ€μΌλ‘
ν΄λΉ λ μ§μ κ°λ₯ν κ°μ° (= ν΄λΉ λ μ§ < κ°μ° κΈ°ν)λ€ μ€
κ°μ₯ νμ΄κ° λμκ±Έ κ·Έ νΉμ λ μ§μ λ°°μΉνλ€
while(idx<n && v[idx].first>=day) {
pq.push(v[idx].second);
idx++;
}
ν΄λΉ λ μ§μ κ°λ₯ν λ μ§μ νμ΄λ€μ μ°μ μμ νμ λ£μ΄λκ³
if(pq.empty()) {
continue;
}
sum += pq.top();
pq.pop();
κ°μ₯ νμ΄κ° λμκ±Έ (= pq.top()) νμ μ§μ (= sum+κ°μ°λΉ)
κ·ΈλΌ pqμ λ¨μμλ λ€λ₯Έ κ°μ°λ€μ μ λΆ
μ§κΈ λ μ§λ³΄λ€ μμͺ½μΈ λ μ§μμ λΉμ°ν κ°λ₯ν κ°μ°λ€μ΄λ€
(μλλ©΄ κΈ°νμ΄ κΈ΄ μμλλ‘ λ€μ΄κ°κ³ μμΌλκΉ!)
κ·Έ λ€μ(μμͺ½) λ μ§λ κ°λ₯ν κ°μ°λ€μ νμ΄λ₯Ό μ°μ μμνμ λ£κ³
κ·Έ μ€ κ°μ₯ νμ΄κ° λμκ±Έ κ·Έ λ μ§λ‘ λ°°μΉν΄μ μκ°λ£ μ±κΈ°κ³
λ°λ³΅νλ©΄ λ
// νμ΄ : https://whkakrkr.tistory.com
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
typedef pair<int, int> ci;
const int INF = 10000;
bool cmp(ci a, ci b) {
return a.first > b.first;
}
int main() {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
int n;
cin >> n;
vector<ci>v(n);
for(int i=0; i<n; i++) {
int p,d;
cin >> p >> d;
v[i] = {d,p};
}
sort(v.begin(), v.end(), cmp);
int sum = 0, idx = 0;
priority_queue<int> pq;
for(int day=INF; day>0; day--) {
while(idx<n && v[idx].first>=day) {
pq.push(v[idx].second);
idx++;
}
if(pq.empty()) {
continue;
}
sum += pq.top();
pq.pop();
}
cout << sum;
return 0;
}
'ποΈ ICPC Sinchon > Greedy' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ][C++] λ°±μ€ 1343λ²: ν΄λ¦¬μ€λ―Έλ Έ (Silver V) (0) | 2025.03.10 |
---|---|
[BOJ][C++] λ°±μ€ 14916λ²: κ±°μ€λ¦λ (Silver V) (0) | 2025.03.10 |
[BOJ][C++] λ°±μ€ 1715λ²: μΉ΄λ μ λ ¬νκΈ° (Gold IV) (0) | 2025.02.10 |
[BOJ][C++] λ°±μ€ 14908λ²: ꡬλ μμ 곡 (Gold I) (0) | 2025.02.10 |
[BOJ][Python / C++] λ°±μ€ 16953λ²: A β B (Silver II) (0) | 2024.11.01 |