https://www.acmicpc.net/problem/2075
1.의사코드
1. 작은것부터 넣기
2. 메모리제한 -> 큐에n개이상이면 pop 하기
3. top에 있는애가 n번째 큰수임
ex)
1~7에서 5번째 큰수는 3이다.
pq에 6이 올때, 5(n)<6(size) -> top(1제거)
pq에 7이 올때, 5(n)<6(size) -> top제거(2제거)
이후 top 에있는 놈이 정답인 3이다.
2. 전체코드
ios sync 코드를 빠뜨렸더니 시간초과가 났다..
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll ret,n,tmp;
priority_queue<ll,vector<ll>,greater<ll>> pq;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 0; i < n*n; ++i) {
cin >> tmp;
pq.push(tmp);
if (n < pq.size()) pq.pop();
}
cout << pq.top();
return 0;
}
'Algorithm > 우선순위큐' 카테고리의 다른 글
백준 11000 강의실배정 c++ // 강의실배정 vs 회의실배정, pq cmp 구현시 주의점 (0) | 2024.05.14 |
---|---|
프로그래머스 이중우선순위큐 c++ // pq, multiset 사용법 (0) | 2024.04.02 |
백준 1781 컵라면 c++ // 우선순위큐 정렬방법, 선택x인경우 처리방법 (0) | 2024.03.24 |
백준 1655 가운데를말해요 c++ // 우선순위큐 2개로 정렬효과만들기 (0) | 2024.03.24 |
백준 1715 카드정렬하기 c++ // 우선순위큐, 그리디, 허프만코드 (0) | 2024.03.24 |