https://www.acmicpc.net/problem/1946
순위가 낮을수록, 즉 오름차순으로 정렬해야 원하는 결과값을 얻을 수 있음.
(1등,2등,3등 .. )
1. 서류순위를 기준으로 오름차순 정렬한 뒤,
2. 서류 2등부터 면접 순위만으로 판단
(서류 1등은 무조건 합격이므로 )
Score 클래스에 구현되는 Comparable 이 뭐더라 싶다면?
https://velog.io/@mong7399/자바-JAVA-Comparable-vs-Comparator
import java.io.*;
import java.util.*;
class Score implements Comparable<Score>{
int x;
int y;
Score(int x, int y){
this.x = x;
this.y = y;
}
@Override
public int compareTo(Score o) {
if (o.x < this.x) return 1;
else return -1;
}
}
public class Main {
static int N;
static ArrayList<Score> arr;
static int result;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test_case = Integer.parseInt(br.readLine());
for(int T=0;T<test_case;T++){
N = Integer.parseInt(br.readLine());
arr = new ArrayList<>();
for(int i=0;i<N;i++){
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
arr.add(new Score(x,y));
}
Collections.sort(arr); //서류순 정렬
int result = 1;
int minInterview = arr.get(0).y;
for(int i=1;i<N;i++){
if(arr.get(i).y < minInterview){
result += 1;
minInterview = arr.get(i).y;
}
}
System.out.println(result);
}
}
}