[๋ฐฑ์ค€] [C++] ๐Ÿ’Ž ๋ณด์„ ๋„๋‘‘ 1202๋ฒˆ


๐Ÿ’ก ๋ฌธ์ œ ์„ค๋ช…

๋ฐฑ์ค€ ๋ณด์„ ๋„๋‘‘

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์•„๋‹ˆ๋ฉด ๋ฌด์กฐ๊ฑด ์‹œ๊ฐ„์ดˆ๊ณผ ๋ฐœ์ƒ.


๐Ÿ’ก ์ ‘๊ทผ ๋ฐฉ๋ฒ•

์ž‘์€ ๊ฐ€๋ฐฉ๋ถ€ํ„ฐ ๋‹ด์•„์•ผ ํ•œ๋‹ค. -> ๊ฐ€๋ฐฉ์„ ์ •๋ ฌ

๊ฐ€๋ฐฉ์— ๋‹ด์„ ๋•Œ, ๊ฐ€๋ฐฉ์— ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ค‘์— ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ๊ฒƒ๋ถ€ํ„ฐ ๋‹ด์•„์•ผ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.


๐Ÿ’ก ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ•œ ํ’€์ด

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
#define MAX 300001


/*
๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข‹์€ ๋ฌธ์ œ
๊ฐ€๋ฐฉ์˜ ์šฉ๋Ÿ‰์ด ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๋ฌผํ’ˆ์ค‘์— ๊ฐ€์žฅ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ๋ฌผํ’ˆ์„ ๋‹ด๋Š”๋‹ค.
*/

int N, K;
pii jewerly[MAX];
int C[MAX];
priority_queue<int> pq;

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    
    cin >> N >> K;
    for (int i=0; i<N; i++){
        cin >> jewerly[i].first >> jewerly[i].second;
    }
    for (int i=0; i<K; i++){
        cin >> C[i];
    }

    // ๋ฌด๊ฒŒ ์ˆœ์œผ๋กœ ์ •๋ ฌ
    sort(jewerly, jewerly+N);
    sort(C, C+K);
    
    int idx = 0;
    ll sum = 0;

    // ์ž‘์€ ๊ฐ€๋ฐฉ๋ถ€ํ„ฐ ์ตœ์ ์˜ ๊ฐ€์น˜๋ฅผ ๋„ฃ๊ธฐ
    for (int i = 0; i < K; i++) {

        // ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค pq์— ์ผ๋‹จ ๋„ฃ๊ธฐ
        while (idx < N) {
            if (C[i] < jewerly[idx].first) break;  // ๋ชป๋‹ด๋Š” ๋ฌด๊ฒŒ ๋‚˜์˜ค๋ฉด
            pq.push(jewerly[idx].second);
            idx++;
        }

        // ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ค‘์— ๊ฐ€์น˜๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ฌผ๊ฑด ๋„ฃ๊ธฐ
        // ๋‚˜๋จธ์ง€๋Š” ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๋Š”๊ฒŒ ์ค‘์š”
        if (!pq.empty()) {
            sum += pq.top();
            pq.pop();
        }
    }

    cout << sum;

    return 0;
}

๐Ÿ’ก ๋งˆ๋ฌด๋ฆฌ

๊ฐ€๋ฐฉ์„ ์ž‘์€ ์ˆœ์„œ๋กœ ์ •๋ ฌํ•œ ํ›„, ๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ณด์„ ์ค‘์—์„œ ๊ฐ€์น˜๊ฐ€ ๋†’์€ ๊ฒƒ๋ถ€ํ„ฐ ๋„ฃ๋Š”๋‹ค๋Š” ์ƒ๊ฐ์ด ๋งค์šฐ ํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ๋“ค์€ ์ฐธ ์ƒ๊ฐํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ ๊ฐ™๋‹ค.

๊ทผ๋ฐ ์ฐธ ๋งค๋ ฅ์ ์ธ ๋ฌธ์ œ์ธ๊ฒƒ ๊ฐ™๋‹ค.