1. 문제
2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 명의 학생들이 응시했다.
이들 중 점수가 가장 높은 명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.
커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.
첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다.
둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다.
- 1 ≤ N ≤ 1,000
- 1 ≤ k ≤ N
- 0 ≤ x ≤ 10,000
2.문제해결
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n, k , x;
n = sc.nextInt();
k = sc.nextInt();
int[] scoreArr = new int[n];
//모든 응시자의 성적 입력받기
for(int i=0; i<scoreArr.length; i++) {
scoreArr[i] = sc.nextInt();
}
sc.close();
//내림차순 정렬 : 삽입정렬
for(int i=1; i<scoreArr.length; i++) {
int key = scoreArr[i]; //1번 인덱스부터
int j = i-1; //0번 인덱스부터
//j인덱스 값이 key보다 작으면 자리이동 event
while(j>=0 && scoreArr[j]<key) {
scoreArr[j+1] = scoreArr[j]; //낮은 성적 뒤로 한 칸
j--;
}
scoreArr[j+1] = key; //key 앞으로 한 칸 or 자리 유지 (while문 통과 x)
}
//출력 (제출용)
System.out.println(scoreArr[k-1]);
}//end main
}
'Algorithm' 카테고리의 다른 글
[javascript/프로그래머스] 가장 많이 받은 선물 (0) | 2024.05.19 |
---|---|
[Java/백준] 2587.정렬 - 대표값2 (선택정렬, 삽입정렬) (0) | 2022.11.08 |
[Java/백준] 2750.정렬 - 수 정렬하기1 (삽입정렬) (0) | 2022.11.07 |
[ Java/ 백준 ] 2480.조건문 - 주사위 세개 (0) | 2022.11.04 |
[Oracle / 프로그래머스] 입양 시각 구하기(2) - LEVEL, WITH AS (0) | 2022.02.17 |