백준 - JAVA/정렬

[백준] 25305번 : 커트라인 _ JAVA ( 주석 설명 )

wch_s 2023. 2. 6. 23:09

1번

→ Array 클래스의 sort 메소드를 활용한 (오름차순) 정렬

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //빠른 입력을 위해 버퍼를 이용해 입력을 받는다.
        StringTokenizer st;

        st = new StringTokenizer(br.readLine()); //개행으로 입력받은 토크나이저 문자열에서 ' ' 기준으로 문자열을 나눈다.
        int N = Integer.parseInt(st.nextToken()); //시험 응시자 수를 입력받는다.
        int k = Integer.parseInt(st.nextToken()); //상을 받는 사람의 수를 입력받는다.

        int[] ary = new int[N]; //입력될 수를 담을 배열 ary 를 생성한다.

        st = new StringTokenizer(br.readLine()); //StringTokenizer 객체는 소모적 객체이므로 개행마다 다시 정의해주어야 한다.
        for(int i=0;i<N;++i){
            int score = Integer.parseInt(st.nextToken()); //각 학생의 점수를 입력받는다.
            ary[i] = score; //각 학생의 점수를 배열에 저장한다.
        }

        Arrays.sort(ary); //오름차순을 기준으로 정렬한다. //내림차순 정렬 시, int[] 배열을 Integer 객체로 Wrapping 이 필요하다.

        System.out.println(ary[N-k]); //상을 받는 커트라인을 출력한다.
    }
}