Search
Duplicate
📕

N번째 큰 수

주차
문제번호
2075
언어
C++
티어
실버
유형
자료구조
정렬
우선순위 큐
nj_Blog
nj_상태
이해도
33%
풀이
사람
이해도 2
13 more properties

문제접근

메모리 제한이 있기 때문에 우선순위 큐를 사용하여 매 줄마다 n만큼만 남기고 나머지는 제거

놓쳤던 부분

priority_queue
사용법
sort의 오름차순과 달리 cmp가 true를 반환하게 되면 swap이 동작하기 때문에 a > b를 해야 루트에 최솟값 정렬

코드

2156 KB

448 ms

#include <iostream> #include <queue> using namespace std; //true를 반환하게 되면 swap이 동작하기 때문에 루트에 최솟값 정렬 struct cmp { bool operator()(int a, int b) { return a > b; } }; int main(void) { priority_queue<int, vector<int>, cmp> pq; int n; int input; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> input; pq.push(input); } while (pq.size() > (unsigned int)n) pq.pop(); } cout << pq.top(); return (0); }
C++
복사