별거 아닌데 문제가 이해안되서 헤맸다. 난독인듯. 서류랑 면접 순위를 나타낸건데 점수를 나타낸 건 줄 알고 계속 고뇌에 빠졌었다. 순위가 서류와 면접 두 가지로 주어지기 때문에 일단 서류/면접 중 하나로 정렬한다. 이후 아래와 같이 제일 높은 서류성적을 가진사람의 면접순위를 최대 면접순위에 저장해놓고 다음사람을 최대 면접순위와 비교하고, 최대값보다 높은 순위를 가지면 그 값으로 최대 면접순위를 업데이트 하는 식으로 풀면 된다.
#include <iostream>
#include <algorithm>
using namespace std;
int T, N;
int cnt_array[21];
pair<int,int> score[100000];
int main() {
cin >> T;
for (int i = 0; i < T; i++) {
cin >> N;
for (int j = 0; j < N; j++) {
cin >> score[j].first >> score[j].second;
}
sort(score, score + N); //first를 기준으로 오름차순으로 정렬
int max_score = score[0].second;
int cnt = 0;
for (int i = 0; i < N; i++) {
if (score[i].second <= max_score) {
cnt++;
max_score = score[i].second;
}
}
cnt_array[i] = cnt;
}
for (int i = 0; i < T; i++) {
cout << cnt_array[i]<<endl;
}
return 0;
}
'Programming > BOJ' 카테고리의 다른 글
[백준/C++] 백준 2178번: 미로탐색 (BFS) (0) | 2020.08.02 |
---|---|
[백준/C++] 백준 1012번: 유기농 배추 (0) | 2020.08.01 |
[백준/C++] 백준 1987번: 알파벳 (0) | 2020.07.28 |
[백준/C++] 백준 1759번 : 암호만들기 (0) | 2020.07.28 |
[백준/C++] 백준 1931번: 회의실배정 (0) | 2020.07.20 |