알고리즘 문제 해결/BOJ

[자료구조, 우선순위 큐] BOJ 2075 N번째 큰 수

jmkimmessi 2022. 2. 2. 00:00
반응형

https://www.acmicpc.net/problem/2075

 

2075번: N번째 큰 수

첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.

www.acmicpc.net

 

문제 해결 알고리즘

 

우선순위 큐를 이용한다.

 

이 때 메모리 초과가 날 수 있으므로 N개 이상 큐에 들어가 있으면 맨 앞에 있는 수를 삭제해주면서 진행해준다.

0

소스 코드

 

#include <bits/stdc++.h>
using namespace std;

priority_queue<long, vector<long>, greater<long>> pq;

int main(){
    ios::sync_with_stdio(false);
	cin.tie(); cout.tie();
    int N; cin >> N;
    
    for(int i=0;i<N;i++){
        for(int j=0;j<N;j++){
            long num; cin >> num;
            pq.push(num);
            if(pq.size() > N) pq.pop();
        }
    }
    
    cout << pq.top();
    
}

 

반응형