11004번 : K번째 수
수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다.
둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109)
출력
A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.
생각해 볼 점
정렬해서 풉니다.
굳이 정렬 알고리즘을 짜기엔 효율적인 정렬 알고리즘은 상당히 번거롭기 때문에,
sort() 한방으로 풀었습니다.
코드
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int N, K;
scanf("%d %d", &N, &K);
int* arr = new int[N];
for (int i = 0; i < N; i++) scanf("%d", &arr[i]);
sort(arr, arr + N);
printf("%d", arr[K - 1]);
delete[] arr;
return 0;
}
그 외
'공부 및 정리 > 백준 코드' 카테고리의 다른 글
[C++]백준 - 1032번 문제 (0) | 2021.11.17 |
---|---|
[C++]백준 - 1059번 문제 (0) | 2021.11.16 |
[C++]백준 - 2836번 문제 (0) | 2021.11.15 |
[C++]백준 - 2170번 문제 (0) | 2021.11.15 |
[C++]백준 - 1620번 문제 (0) | 2021.11.12 |