그런데 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));
}
}
'Java 코딩테스트 공부 > Java 코테 나만의 팁' 카테고리의 다른 글
[정렬] 객체를 비교하게 해주는 Comparable 인터페이스 (0) | 2022.10.20 |
---|---|
[정렬] 시간복잡도 O(N)를 가진 정렬 풀이법 (0) | 2022.10.20 |