메모리제한이 많이 빡빡한 문제이다. 메모리 제한을 지키기 위해 저장개수를 N개로 제한했다.
우선순위 큐를 사용했는데 우선순위 큐는 내림차순으로 정렬된다. 그래서 pop()을 하게 되면 가장 큰 값이 pop()이 된다.priority_queue<int, vector<int>, greater<int>> pq
를 사용하게 되면 오름차순으로 저장이 되며 pop()을 하게 되면 pq에 저장된 값 중 가장 작은 값을 pop()하게 된다.
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
void input_find_answer()
{
priority_queue<int, vector<int>, greater<int>> pq;
int i, N, temp;
cin >> N;
for (i = 0; i < N * N; i++)
{
cin >> temp;
pq.push(temp);
if (pq.size() > N)
{
pq.pop();
}
}
cout << pq.top() << "\n";
return;
}
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//메모리 제한 빡셈 + 중복수 가능?
input_find_answer();
return 0;
}