https://www.acmicpc.net/problem/2075
# 문제 설명
- N*N의 표에 수가 채워져 있다. 모든 수는 자신의 한 칸 위에 있는 수보다 크다.
- 이러한 표가 주어졌을 때 N번째 큰 수를 출력한다.
- 1<=N<=1500
# 풀이 방법
- 우선순위 큐를 이용한다. 메모리 초과 방지를 위해 N개의 원소만 가질 수 있도록 한다.
# 정답 코드
#include <iostream>
#include <queue>
using namespace std;
priority_queue<int>pq;
int n, x;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 0; i < n*n; i++) {
cin >> x;
pq.push(-x);
if (pq.size() > n) pq.pop();
}
cout << -pq.top();
}
'Koala - 11기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/C++] 11866번: 요세푸스 문제 0 (0) | 2023.08.12 |
---|---|
[백준 / Python] 26042 식당 입구 대기 줄 (0) | 2023.08.11 |
[백준/python] 17779 게리맨더링 2 (0) | 2023.08.10 |
[백준 / Python] 8983 사냥꾼 (0) | 2023.08.06 |
[백준/C++] 15724번 주지수 (0) | 2023.08.06 |