[백준] 25305

당당·2023년 4월 28일
0

백준

목록 보기
62/179

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

📔문제

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

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

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


📝입력

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

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


📺출력

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


🚫제한

  • 1N10001 ≤ N ≤ 1\,000
  • 1kN1 ≤ k ≤ N
  • 0x100000 ≤ x ≤ 10\,000

📝예제 입력 1

5 2
100 76 85 93 98

📺예제 출력 1

98

시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.


🔍출처

University > 연세대학교 미래캠퍼스 > 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활 B번
-문제를 검수한 사람: jhnah917, yclock
-문제를 만든 사람: junie


🧮알고리즘 분류

  • 구현
  • 정렬

📃소스 코드

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

public class Code25305 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();//응시자
        int k=sc.nextInt();//상
        int cut=0;

        int[] score=new int[N];
        for(int i=0;i<N;i++){
            score[i]=sc.nextInt();
        }

        Arrays.sort(score);

        int count=0;
        for(int i=N-1;i>=0;i--){
            count++;
            if(count==k){
                cut=score[i];
                break;
            }
        }
        System.out.println(cut);
    }
}

📰출력 결과


📂고찰

응시자 만큼의 크기로 배열을 만들고, 상을 받는 인원을 입력받는다.

그리고, 응시자의 각 점수를 받고 오름차순으로 정렬한다.
(내림차순으로 정렬하면 쉽지만..)

제일 뒤에 정렬된 큰 수부터 count++하고 만약 count값이 상을 받는 인원이랑 같아지면, 그 count값을 가졌을때의 score[i]가 커트라인 점수이다.

profile
MySQL DBA 신입 지원

0개의 댓글