신입 사원을 뽑기 위해서는 다른 한사람보다 면접 or 필기 등수가 하나라도 높으면 된다.(등수는 1 ~ N까지 1에 가까워질수록 등수가 높다)
일단 서류 심사 성적을 기준으로 입력받은 값을 정렬한다. 만약 다음 등수 사람의 면접 등수가 그 전 사람의 면접 등수보다 낮으면 탈락이다. (현재 서류 기준으로 정렬되어 있기 때문에 면접 등수가 떨어지면 필기, 면접 둘다 등수가 떨어지므로 탈락이다.)
//백준 1946 신입 사원
#include <iostream>
#include <algorithm>
int main (){
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
int T;
std::cin >> T;
while(T--){
int N;
std::pair<int, int> arr[100'001];
std::cin >> N;
for(int i{1}; i<=N; ++i){
std::cin >> arr[i].first >> arr[i].second;
}
std::sort(arr+1, arr+N+1);
int ans{1}; int tmp{arr[1].second};
for(int i{2}; i<=N; ++i){
if(tmp >= arr[i].second){
tmp = arr[i].second;
++ans;
}
}
std::cout << ans << '\n';
}
return 0;
}
2025-03-13T05:08:23.602Z