반응형
pair 배열을 사용하여 두가지 값을 한번에 받고
sort함수를 이용하여 정렬을 한다.
그 다음 문제 조건인 '다른 모든 지원자와 비교했을 때 서류심사 성적과 면접시험 성적 중 적어도 하나가 다른 지원자보다 떨어지지 않는 자만 선발한다'를
이용하여 문제를 해결한다.
즉 첫 번째 지원자를 이용하여 다음 지원자와 비교를 하고
만약 두 번째 지원자가 첫 번째 지원자와 비교를 했을 때 선발된다면
비교 값을 두 번째 지원자의 값으로 바꾸고 카운팅한다.
#include<iostream>
#include<algorithm>
using namespace std;
int main() {
int test_case;
cin >> test_case;
for(int T = 0; T < test_case; T++) {
int N;
cin >> N;
pair<int, int> p[N];
for(int i = 0; i < N; i++) {
cin >> p[i].first >> p[i].second;
}
sort(p, p + N);
int cnt = 1;
int a, b;
a = p[0].first;
b = p[0].second;
for(int i = 1; i < N; i++) {
if(p[i].first > a && p[i].second < b) {
cnt++;
a = p[i].first;
b = p[i].second;
}
}
cout << cnt << endl;
}
return 0;
}
반응형
'BaekJoon > C++' 카테고리의 다른 글
2576 : 홀수 (C++) (0) | 2021.02.05 |
---|---|
2583 : 영역 구하기 (C++) (0) | 2021.02.05 |
2468 : 안전 영역 (C++) (0) | 2021.02.04 |
7576 : 토마토 (C++) (0) | 2021.02.04 |
4963 : 섬의 개수 (C++) (0) | 2021.02.04 |
댓글