커트라인

곽지욱·2023년 9월 7일

BOJ

목록 보기
22/69
post-thumbnail

25305번 : 커트라인

N명의 학생이 응시한 시험에서 가장 점수가 높은 K 명이 상을 받을 수 있고, 상을 받는 커트라인이 몇 점인지 구하는 문제

import java.util.Arrays;
import java.util.Scanner;
import java.util.Collections;

public class CutLine {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int K = sc.nextInt();
        Integer[] arr = new Integer[N]; // Integer 배열로 선언

        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }

        Arrays.sort(arr, Collections.reverseOrder()); // 내림차순으로 정렬


        System.out.println(arr[K-1]);

    }
}

arr을 Integer 형태로 선언하는 이유는 배열의 요소를 내림차순으로 정렬할 때, 기본 데이터 타입인 'int'를 사용하면 안되기 때문.

내림차순 정렬을 위해 Collections.reverseOrder()를 사용할 때: Collections.reverseOrder()는 내림차순으로 정렬하기 위한 Comparator를 반환합니다. 이 Comparator는 Comparable 인터페이스를 구현한 객체를 기준으로 내림차순으로 정렬하기때문. int는 기본 데이터 타입으로 Comparable 인터페이스를 구현하지 않으므로 Collections.reverseOrder()를 사용하려면 Integer 객체 배열을 사용해야 함.

0개의 댓글