본문 바로가기
알고리즘/백준

알고리즘(C++) / 백준 11004 : K번째 수

by clean_h 2021. 4. 14.
728x90

11004

www.acmicpc.net/problem/11004

 

11004번: K번째 수

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

www.acmicpc.net

 

문제

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

 

입력

첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다.

둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109)

 

출력

A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.

 

코드

//11004 K번째 수
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	int N, K;
	cin >> N >> K;

	vector <int> vec(N);

	for (int i = 0; i < N; i++) {
		cin >> vec[i];
	}

	sort(vec.begin(), vec.end());
	
	cout << vec[K-1] << "\n";

	return 0;
}

 

설명

이번 문제는 간단하게 algorithm 해더에 있는 sort함수를 통해서 오름차순으로 정렬하고 K번째 있는 수를 출력할 수 있다.

vector로 수 N개를 입력받은 후 vector를 오름차순으로 정렬한다.

그 후 K-1번째를 출력한다. (배열은 0부터 시작)

 

결과

 

고찰

이번문제는 어렵지 않게 풀 수 있었다.

5분도 채 안돼서 문제를 풀었다. 

 

난이도

◐○

728x90

댓글