[백준/BOJ] 25305번_커트라인 (C++/Java)

JIMIN·2023년 2월 1일

BOJ_Bronze

목록 보기
44/75

https://www.acmicpc.net/problem/25305

문제


2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다.

이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.

커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.


입력


첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다.

둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다.


출력


상을 받는 커트라인을 출력하라.



💻 예제 입력

5 2
100 76 85 93 98

💻 예제 출력

98

풀이


학생들 성적을 정렬한 후 K번째에 해당하는 학생 점수를 출력.


C++ 소스코드


#include <iostream>
#include <algorithm>
using namespace std;

int main(void)
{
    int N, K;
    cin >> N >> K;
    
    int *arr = new int[N];
    for (int i = 0; i < N; i++)
        cin >> arr[i];
    
    sort(arr, arr+N);
    cout << arr[N-K] << "\n";
}

Java 소스코드


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

public class Main {
    public static void main(String[] args) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] s = br.readLine().split(" ");
        int N = Integer.parseInt(s[0]);
        int k = Integer.parseInt(s[1]);

        s = br.readLine().split(" ");
        int[] arr = new int[N];
        for (int i = 0; i < N; i++)
            arr[i] = Integer.parseInt(s[i]);

        Arrays.sort(arr);
        System.out.println(arr[N-k]);
    }
}
profile
잘못된 코드나 정보가 있다면 알려주세요! 👋🏻

0개의 댓글