๐Ÿ™‡โ€โ™€๏ธ[Silver V] K๋ฒˆ์งธ ์ˆ˜ - 11004

๋ฌธ์ œ ๋งํฌ

์„ฑ๋Šฅ ์š”์•ฝ

๋ฉ”๋ชจ๋ฆฌ: 51300 KB, ์‹œ๊ฐ„: 1196 ms

๋ถ„๋ฅ˜

์ •๋ ฌ

์ œ์ถœ ์ผ์ž

2024๋…„ 1์›” 3์ผ 20:30:40

๋ฌธ์ œ ์„ค๋ช…

์ˆ˜ N๊ฐœ A1, A2, ..., AN์ด ์ฃผ์–ด์ง„๋‹ค. A๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ–ˆ์„ ๋•Œ, ์•ž์—์„œ๋ถ€ํ„ฐ K๋ฒˆ์งธ ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— N(1 โ‰ค N โ‰ค 5,000,000)๊ณผ K (1 โ‰ค K โ‰ค N)์ด ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ์—๋Š” A1, A2, ..., AN์ด ์ฃผ์–ด์ง„๋‹ค. (-109 โ‰ค Ai โ‰ค 109)

์ถœ๋ ฅ

A๋ฅผ ์ •๋ ฌํ–ˆ์„ ๋•Œ, ์•ž์—์„œ๋ถ€ํ„ฐ K๋ฒˆ์งธ ์žˆ๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿš€ํ’€์ด

๋ฐ์ดํ„ฐ ์–‘์ด ๋งŽ์•„์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์ •๋ ฌ์„ํ•˜๋ฉด ์‹œ๊ฐ„์ œํ•œ์ด ๊ฑธ๋ ธ๋‹ค.

๋‚˜๋Š” ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค.

์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์ตœ์†Œ๊ฐ’์„ ์ฐพ๋Š”๊ฒƒ์€ O(logN)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์šฐ์„ ์ˆœ์œ„ ํ์— ๊ฐ’๋“ค์„ ๋‹ค ์ง‘์–ด ๋„ฃ๊ณ , k-1๋ฒˆ๊นŒ์ง€๋Š” pop์„ ํ•ด์ฃผ๊ณ  k๋ฒˆ์งธ ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹์ด๋‹ค.

๐Ÿš€์ „์ฒด ์ฝ”๋“œ

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>

using namespace std;

int n, k;
priority_queue<int, vector<int>, greater<int>> pq;

void solve()
{
	cin >> n >> k;
	int temp;
	for (int i = 0; i < n; ++i)
	{
		cin >> temp;
		pq.push(temp);
	}

	for (int i = 0; i < k - 1; ++i)
		pq.pop();

	cout << pq.top();
}

int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	//freopen("input.txt", "rt", stdin);

	solve();

	return 0;
}

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: