25305번: 커트라인
시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.
www.acmicpc.net
문제
2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N
명의 학생들이 응시했다.이들 중 점수가 가장 높은 k
명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.
입력
첫째 줄에는 응시자의 수 N
과 상을 받는 사람의 수 k 가 공백을 사이에 두고 주어진다.둘째 줄에는 각 학생의 점수 x
가 공백을 사이에 두고 주어진다.출력
상을 받는 커트라인을 출력하라.
제한
- 1≤N≤1000
- 1≤k≤N
- 0≤x≤10000
예제 입력 1
5 2
100 76 85 93 98
예제 출력 1
98
시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.
해결 아이디어
N개의 값을 입력받고, 오름차순 정렬을 한 후에 끝에서부터 k번째의 값을 출력한다.
#include <iostream>
using namespace std;
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int* num;
int N, k;
cin >> N >> k;
num = new int[N];
for(int i = 0; i < N; ++i)
{
cin >> num[i];
}
for(int i = 0; i < N - 1; ++i)
{
int least = i;
for(int j = i; j < N; ++j)
{
if(num[least] > num[j])
{
least = j;
}
}
swap(num[i], num[least]);
}
cout << num[N - k];
return 0;
}
'algorithms (C++)' 카테고리의 다른 글
[C++] 1부터 N까지 M의 배수합 (0) | 2023.09.27 |
---|---|
[C++] 선택정렬 (0) | 2022.11.10 |
[C++] 백준 2587번 / 대표값2 (0) | 2022.11.08 |
[C++] 백준 2750번 / 수 정렬하기 (0) | 2022.11.08 |
[C++] 백준 2563번 / 색종이 (0) | 2022.11.07 |