[BOJ] 2075번 : N번째 큰 수(C++)
문제 링크 : 백준 2075번
[문제 접근]
처음에 메모리 제한을 보지 못하고 1<=n<=1500 이길레 그냥 정렬해서 풀었더니 메모리 초과가 발생했다.
따라서 우선순위 큐를 이용하는데 숫자가 작은 것이 우선순위가 높은 것으로 설정해주고 큐에 n개 이상 들어오지 못하게 작은 숫자들을 계속 pop하면 최종적으로 큐에 큰 숫자 상위 n개 만큼 남게된다.
[소스 코드]
#include <iostream>
#include <algorithm>
#include <queue>
using namespace std;
int n;
priority_queue<int, vector<int>, greater<int>> pq;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for(int i=1 ; i<=n ; i++) {
for(int j=1 ; j<=n ; j++) {
int a;
cin >> a;
pq.push(a);
if(pq.size()>n) {
pq.pop();
}
}
}
cout << pq.top();
return 0;
}
Author And Source
이 문제에 관하여([BOJ] 2075번 : N번째 큰 수(C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@soosungp33/BOJ-2075번-N번째-큰-수C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)