Java 코딩테스트 공부/Java 코테 나만의 팁
[정렬] 내림차순 Arrays.sort(arr, Collections.reverseOrder());
daramG
2022. 10. 20. 14:50
그런데 int[] arr = new int[n]; 에서 이렇게 작성하면 오류 발생한다.
왜나하면
public static <T> void sort(T[] a, Comparator <? super T> c)
Arrays.sort는 이 형식을 사용하는데,
T는 제네릭 클래스로 모든 객체를 허용하지만, int는 기본형 타입으로 Collections에서 사용하는 객체가 아니기 때문이다.
(primitive type과 reference type 차이)
따라서 Integer arr[] = new Integer[n]; 으로 Integer 타입으로 배열을 선언해주어야 한다.
문제 )
소스코드 )
import java.util.*;
class Main {
public Integer solution(int n, int k, Integer[] arr) {
int answer;
Arrays.sort(arr, Collections.reverseOrder());
answer = arr[k-1];
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
Integer[] arr = new Integer[n];
for(int i=0; i<n; i++) {
arr[i] = sc.nextInt();
}
System.out.println(T.solution(n, k, arr));
}
}