반응형
문제
풀이
내림차순으로 정리하는 우선순위 큐 pq를 선언합니다.
pq에 숫자를 push 해주고, pq의 크기가 n보다 크다면 pq에서 pop 해줍니다.
이렇게 n*n번째 까지 반복한다면 n번째 큰 수가 제일 앞에 위치하게 됩니다.
이 수를 pq.top()으로 출력합니다.
소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<iostream> #include<algorithm> #include<queue> #include<vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; priority_queue<int, vector<int>, greater<int>> pq; for (int i = 0; i < n * n; i++) { int num; cin >> num; pq.push(num); if (pq.size() > n) pq.pop(); } cout << pq.top(); return 0; } | cs |
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준 1756] 피자 굽기 (C++) (0) | 2021.08.19 |
---|---|
[백준 5557] 1학년 (C++) (0) | 2021.08.19 |
[백준 2812] 크게 만들기 (C++) (0) | 2021.08.19 |
[백준 16234] 인구 이동 (C++) (0) | 2021.08.18 |
[백준 2636] 치즈 (C++) (0) | 2021.08.18 |