// Created by gogowonji on 2022/04/01.
//
#include <iostream>
#include <utility>
#include <algorithm>
using namespace std;
pair<int,int> score[100000];
int main() {
// insert code here...
ios::sync_with_stdio(false);
cin.tie(NULL);
int t_num;
int people;
cin >> t_num;
while(t_num--){
cin >> people;
for(int i = 0; i < people; i++){
cin >> score[i].first >> score[i].second;
}
sort(score, score+people);
int apply = 1;
int before = score[0].second;
for(int i = 1; i < people; i++){
if(score[i].second == 1){
apply++;
break;
}else if(score[i].second < before){
apply++;
before = score[i].second;
}
}
cout << apply << "\n";
}
return 0;
}
기준을 정해주고 그 기준을 통해서 그리디를 해결 해야겠다는 생각이 들었다.
그래서 기준을 서류 심사 등수로 지정 하는 코드를 구상하였다.
근데 어떤 자료구조를 쓸지 고민을 하다가
2차원 배열로는 정렬을 해주는 sort()함수를 못 쓸 것 같아서
서류와 면접 등수를 같이 가져갈 수 있도록 쌍으로 값을 가져오길 바랐다.
기억을 더듬어 벡터가 그런 역할을 해주었던 것 같아서 찾아보니 pair를 사용하면 편리할 듯 했다.
그래서 pair를 이용하여 코드를 완성해주었다.
자료구조만 알았다면 1분 안에도 쉽게 짤 수 있는 문제 였던 것 같다.
여러 가지 자료구조를 배운지 너무 오래되어서 기억에 일부분만 남아있는 느낌이었다.
그래서 열심히 복기 해야겠다고 다짐했다.
그리고 이 문제를 풀던 날 채점 결과가 기다리는 중 으로 뜨고 채점이 계속 안되었다.
가끔 서버가 몰려서 채점이 지연되는 경우가 있다고 한다.
처음 경험해봐서 신기했다.