신입사원을 뽑는데 서류심사 성적과 면접 성적 두개의 순위가 주어집니다.
다른 사원보다 둘다 낮은 경우가 있다면 뽑히지 못합니다.
최종 선발 가능한 신입사원의 수를 구하여야 합니다.
서류심사 성적으로 정렬을 한 다음 1등의 면접 성적을 기준으로 2등부터 차례대로 비교합니다.
면접 성적 등수가 1등보다 낮으면 둘다 낮은 경우이므로 패스하고
높으면은 카운트를 증가시키고, 비교하는 등수를 현재의 등수로 지정해서 비교를 계속합니다.
#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;
int main(int argc, char* argv[])
{
int ts;
int n;
int num;
int count;
pair<int, int> p[100010];
cin >> ts;
while (ts--) {
count = 1;
cin >> n;
for(int i=0; i<n; ++i){
cin >> p[i].first >> p[i].second;
}
sort(p, p + n);
num = p[0].second;
for (int i = 1; i < n; ++i) {
if (num > p[i].second) {
num = p[i].second;
++count;
}
}
cout << count << endl;
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[C++] 백준 1969번 DNA (0) | 2019.11.23 |
---|---|
[C++] 백준 4796번 캠핑 (0) | 2019.11.23 |
[C++] 백준 11000번 강의실 배정 (0) | 2019.11.23 |
[C++] 백준 16076번 휴식이 필요해 (0) | 2019.11.13 |
[C++] 백준 15439번 Vera and Outfits (0) | 2019.11.13 |