https://www.acmicpc.net/problem/1946
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
class Test implements Comparable<Test>{
int a, b;
public Test(int a, int b){
this.a = a;
this.b = b;
}
@Override
public int compareTo(Test o){
return this.a - o.a; // 서류 심사 성적 오름차순 정렬
}
}
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
while(T-->0){
int N = Integer.parseInt(br.readLine());
List<Test> list = new ArrayList<>();
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
list.add(new Test(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
}
Collections.sort(list);
int cnt=0;
int highRank = Integer.MAX_VALUE;
for(Test t : list){
if(t.b < highRank){
highRank = t.b;
cnt++;
}
}
sb.append(cnt).append("\n");
}
System.out.println(sb);
}
}
일단 서류 심사 성적 하나를 기준으로 오름차순 정렬한다.
그리고 서류 심사 성적이 높은 사람부터 면접 심사 성적을 비교하면서
면접 심사 성적 순위가 여태껏 나온 순위중 가장 낮은 순위보다 낮다면 (성적이 제일 높다면) 뽑힌다.
이렇게 하는 이유는 서류 심사 성적 순위가 1등이 아닌 다른 사람은 서류 심사 성적은 무조건 다른 지원자보다 떨어지니까,
면접 심사 성적 순위는 다른 지원자들보다 가장 높아야 뽑히기 때문이다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 프로그래머스 - [3차]n진수 게임 (0) | 2023.03.18 |
---|---|
[JAVA] 프로그래머스 - 튜플 (0) | 2023.03.04 |
[JAVA] 프로그래머스 - 개인정보 수집 유효기간 (0) | 2023.03.01 |
[MySQL] 프로그래머스 - 루시와 엘라 찾기(IN) (0) | 2023.02.08 |
[JAVA] 백준 1922 - 네트워크 연결 (0) | 2023.02.07 |