๐ป
[๋ฐฑ์ค] ๊ทธ๋ฆฌ๋ - 1202. ๋ณด์๋๋ ๋ณธ๋ฌธ
[๋ฐฑ์ค] ๊ทธ๋ฆฌ๋ - 1202. ๋ณด์๋๋
๋ํจ๋ 2020. 2. 13. 03:09๋ฌธ์
์ธ๊ณ์ ์ธ ๋๋ ์๋์ด๋ ๋ณด์์ ์ ํธ๊ธฐ๋ก ๊ฒฐ์ฌํ๋ค.
์๋์ด๊ฐ ํธ ๋ณด์์ ์๋ ๋ณด์์ด ์ด N๊ฐ ์๋ค. ๊ฐ ๋ณด์์ ๋ฌด๊ฒ Mi์ ๊ฐ๊ฒฉ Vi๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์๋์ด๋ ๊ฐ๋ฐฉ์ K๊ฐ ๊ฐ์ง๊ณ ์๊ณ , ๊ฐ ๊ฐ๋ฐฉ์ ๋ด์ ์ ์๋ ์ต๋ ๋ฌด๊ฒ๋ Ci์ด๋ค. ๊ฐ๋ฐฉ์๋ ์ต๋ ํ ๊ฐ์ ๋ณด์๋ง ๋ฃ์ ์ ์๋ค.
์๋์ด๊ฐ ํ์น ์ ์๋ ๋ณด์์ ์ต๋ ๊ฐ๊ฒฉ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N๊ณผ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ N, K ≤ 300,000)
๋ค์ N๊ฐ ์ค์๋ ๊ฐ ๋ณด์์ ์ ๋ณด Mi์ Vi๊ฐ ์ฃผ์ด์ง๋ค. (0 ≤ Mi, Vi ≤ 1,000,000)
๋ค์ K๊ฐ ์ค์๋ ๊ฐ๋ฐฉ์ ๋ด์ ์ ์๋ ์ต๋ ๋ฌด๊ฒ Ci๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ Ci ≤ 100,000,000)
๋ชจ๋ ์ซ์๋ ์์ ์ ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์๋์ด๊ฐ ํ์น ์ ์๋ ๋ณด์ ๊ฐ๊ฒฉ์ ํฉ์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1
3 2
1 65
5 23
2 99
10
2
์์ ์ถ๋ ฅ1
164
์๊ฐ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ๋ฅผ ํด๋ณด๊ณ ๋์ ํธ๋ ๊ฑด๋ฐ๋ ์๊ฐ์ ๊ตฌํ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ด ์ฝ์ง๊ฐ ์์์ ๋๊ผ๋ค. ์ ๋ ฅ ๋ฐ๋ ๊ฑฐ๋ ๋ฌด๋ฆฌ์์ด ๋ฐ์์ง๋ง ๊ฐ๋ฐฉ์ ๋ฌด๊ฒ๊ฐ ์ฌ๋ฌ๊ฐ๋ก ์ฃผ์ด์ง๋ค๋ ์ ์ด ๊น๋ค๋ก์ ๋ค. ์กฐ๊ฑด์ด ๋ง๋ค๋ณด๋ ์ด๋ป๊ฒ ํ์ด๋๊ฐ์ผํ ์ง ๊ฐ์ ์ก๊ธฐ๊ฐ ํ๋ค์ด์ ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐธ๊ณ ํ๋ค. ์ฐ์ ์์ ํ ๋ฌธ์ ๋ฅผ ํ๊ณ ๋์ ๋ด์ ๊ทธ๋ฐ์ง ์ด์ ๋ณด๋ค ๊ฐ๋จํ๊ฒ ๋๊ปด์ก๋ค. ๋ฐ๋ณต์ ์ธ ํ์ด๊ฐ ํ์ํ ๊ฒ๊ฐ๋ค. ์์ ํ ์ดํด๊ฐ ๋๋ฉด ์ถํ์ ์ ๋ฆฌํ ์์
์์ฑํ ์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
using namespace std;
int W[300001];
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
vector<pair<int, int> > v;
int n, k; //n:๋ณด์ ๊ฐ์, k:๊ฐ๋ฐฉ ๊ฐ์
cin >> n >> k;
for(int i=0; i<n; i++) {
int w, p; // w:๋ณด์ ๋ฌด๊ฒ, p:๋ณด์ ๊ฐ๊ฒฉ
cin >> w >> p;
v.push_back(make_pair(w,p));
}
for(int i=0; i<k; i++){
cin >> W[i]; //๊ฐ๋ฐฉ์ ๋ฌด๊ฒ
}
sort(v.begin(), v.end());
sort(W, W+k);
priority_queue<int> pq;
int j=0;
long long int sum=0;
// ๋ฌด๊ฒ๊ฐ ๋ฎ์ ๊ฐ๋ฐฉ๋ถํฐ
for(int i=0; i< k; i++){
while(j<n && v[j].first <= W[i]){ //๋ณด์๋ฌด๊ฒ๊ฐ ๊ฐ๋ฐฉ๋ฌด๊ฒ๋ณด๋ค ์์์ผํ๋ค๋ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด
pq.push(v[j].second); // ๋ณด์ ๊ฐ๊ฒฉ ๋ฃ์ด์ค๋ค
j++;
}
if(!pq.empty()){
sum += pq.top();
pq.pop();
}
}
cout << sum << "\n";
return 0;
}
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ํ์ด Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 1543. ๋ฌธ์๊ฒ์ (0) | 2020.02.18 |
---|---|
[๋ฐฑ์ค] ๋์ ๊ณํ๋ฒ - 2293. ๋์ 1 (0) | 2020.02.17 |
[๋ฐฑ์ค] DFS์BFS - 2606. ๋ฐ์ด๋ฌ์ค (0) | 2020.02.13 |
[๋ฐฑ์ค] ์ฐ์ ์์ ํ - 11286. ์ ๋๊ฐ ํ (0) | 2020.02.13 |
[๋ฐฑ์ค] ๋ถํ ์ ๋ณต - 1992. ์ฟผ๋ํธ๋ฆฌ(๋ฌธ์ ํธ๋์ค) (0) | 2020.02.12 |