BOJ 11004. K๋ฒ์งธ ์
๐โโ๏ธ[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;
}