2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 명의 학생들이 응시했다.
이들 중 점수가 가장 높은 명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.
커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수
를 말한다.
첫째 줄에는 응시자의 수 과 상을 받는 사람의 수 가 공백을 사이에 두고 주어진다.
둘째 줄에는 각 학생의 점수 가 공백을 사이에 두고 주어진다.
상을 받는 커트라인을 출력하라.
5 2
100 76 85 93 98
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]
가 커트라인 점수이다.