본문 바로가기

알고리즘/백준

[백준] 25305 - 커트라인 (JAVA/ 자바)

반응형

 

Scanner를 이용한 방법

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

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt();
    int k = sc.nextInt();
    Integer[] listArr = new Integer[N];
    
    for(int i=0; i<N; i++){
        listArr[i] = sc.nextInt();
    }
    Arrays.sort(listArr, Collections.reverseOrder());
    System.out.println(listArr[k-1]);
    sc.close();
    }
}

 

BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine(), " ");
    int N = Integer.parseInt(st.nextToken());
    int k = Integer.parseInt(st.nextToken());
    Integer[] listArr = new Integer[N];
    
    st = new StringTokenizer(br.readLine(), " ");
    for(int i=0; i<N; i++){
        listArr[i] = Integer.parseInt(st.nextToken());
    }
    Arrays.sort(listArr, Collections.reverseOrder());
    System.out.println(listArr[k-1]);
    br.close();
    }
}

우선 Collections.reverseOrder()를 이용해서 내림차순으로 정렬한 뒤, 배열은 0부터 시작하기 때문에 k-1인 배열을 출력해주면 된다.

반응형