MATCHORDER (하, p. 371)

문제#

image.png


어떻게 풀었나?#

rating 순서로 정렬해서 러시아팀의 각 선수들 rating보다 같거나 큰 rating을 가진 rating이 가장 가까운 한국 선수들을 matching해주면 된다고 생각했다.

image1.png


정답 코드#

#include <bits/stdc++.h>
using namespace std;
vector<int> russia, korea;
int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int tc; cin >> tc;
    while(tc--) {
        int n; cin >> n;
        int x;
        russia.clear();
        korea.clear();
        for(int i=0; i<n; i++) {
            cin >> x;
            russia.push_back(x);
        }
        for(int i=0; i<n; i++) {
            cin >> x;
            korea.push_back(x);
        }

        sort(russia.begin(), russia.end());
        sort(korea.begin(), korea.end());

        int cnt=0,k=0;
        for(int i=0; i<russia.size(); i++) {
            auto it = lower_bound(korea.begin()+k, korea.end(), russia[i]);
            if(it == korea.end()) continue;
            k = (it-korea.begin())+1;
            cnt++;
        }
        printf("%d\n", cnt);
    }
    return 0;
}