결과 : 시간초과
최대 테스트 수 20, 최대지원자 수 100,000 시간 제한 2초
시간복잡도 계산시 T*(n^2)가 나온다.
최대지원자가 100,000이기 때문에 n=100,000대입하면 최대 100초가 나오므로 시간초과
결과 : 시간초과
Arrays.sort()로 정렬했는데 최악의 경우 n^2이다.
n=100,000대입할 경우 정렬만으로 100억=100초가 걸리므로 시간초과
결과 : 성공
순위는 중복되지 않는다 라는것을 이용해 인덱스를 서류성적으로 이용했다.
이럴 경우 정렬할 필요가 없기 때문에
시간복잡도 : n 이된다.
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class baekjoon1946 {
public static void main(String[]args){
Scanner scan = new Scanner(System.in);
int n= scan.nextInt();
for(int i=0;i<n;i++){
int m=scan.nextInt();
int count=1;
int work[]=new int[m+1];
for(int j=0;j<m;j++){
int a=scan.nextInt();
int b=scan.nextInt();
work[a]=b;
}
int vot= work[1];
for(int j=2;j<=m;j++){
if(work[j]<vot){
vot=work[j];
count++;
}
}
System.out.println(count);
}
scan.close();
}
}