728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 첫째 줄에 N(1 <= N <= 5,000,000)과 K(1 <= K <= N)이 주어진다.
  • 둘째 줄에 N개의 An이 주어진다. (-10^9<= A <= 10^9)
  • A를 오름차순 정렬 했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

풀이 전략

  • vector와 algorithm 정렬을 이용하여 정렬 후, k번째 인덱스의 값을 출력한다.
  • cin으로 입력 받을 시 시간 초과가 나므로 시간을 빠르게 하기 위해 scanf를 사용한다.

소스 코드

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
int main()
{
	int n, k;
	vector<int> data;
	cin >> n >> k;

	for (int i = 0; i < n; i++)
	{
		int a;
		scanf("%d", &a);
		data.push_back( a );
	}
	sort(data.begin(), data.end());
	cout << data[k - 1];
}

링크

www.acmicpc.net/problem/11004

 

11004번: K번째 수

수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 1157 단어 공부  (0) 2021.02.02
[C++ 백준] 4344 평균은 넘겠지  (0) 2021.01.09
[C++ 백준] 1712 손익분기점  (0) 2020.11.04
[C++ 백준] 10809 알파벳 찾기  (0) 2020.08.23
[C++ 백준] 10989 수 정렬하기 3  (0) 2020.07.26