백준 2075 c++

magicdrill·2024년 5월 28일
0

백준 문제풀이

목록 보기
357/654

백준 2075 c++

메모리제한이 많이 빡빡한 문제이다. 메모리 제한을 지키기 위해 저장개수를 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;
}

0개의 댓글