문제
N개의 자연수가 주어질 때, 이 자연수들 중에서 k번째로 큰 수를 찾는 프로그램을 작성하시오. 만약 k=1 이라면, 가장 큰 수를 찾으면 된다.
입력
첫 번째 줄에 자연수 N, k가 주어진다. (1 ≤ N ≤ 100,000, 1 ≤ k ≤ 10) 두 번째 줄에 N개의 자연수가 주어진다.
출력
첫 번째 줄에 k번째 수를 출력한다.
예제 입력
10 3
1 5 2 3 8 4 7 3 2 10
예제 출력
7
예제 입력
5 4
5 5 1 2 3
예제 출력
2
#include <stdio.h>
int main() {
//Please Enter Your Code Here
int n, k;
scanf("%d %d",&n,&k);
int arr[n];
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n;i++) //버블정렬
{
for(int j=0;j<n-1;j++)
{
if(arr[j]>arr[j+1])
{
int tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
printf("%d",arr[n-k]);
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C] PROSJEK (0) | 2022.05.26 |
---|---|
[C] nextnum (0) | 2022.05.26 |
[C] bingo (0) | 2022.05.26 |
[C] 행렬 뒤집기 (0) | 2022.05.26 |
[C] mine (0) | 2022.05.26 |