반응형
N번째 큰 수 성공
시간 제한 |
메모리 제한 |
제출 |
정답 |
맞은 사람 |
정답 비율 |
1 초 |
10 MB (하단 참고) |
3642 |
1300 |
918 |
36.113% |
문제
N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자.
12 |
7 |
9 |
15 |
5 |
13 |
8 |
11 |
19 |
6 |
21 |
10 |
26 |
31 |
16 |
48 |
14 |
28 |
35 |
25 |
52 |
20 |
32 |
41 |
49 |
이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다.
입력
첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.
출력
첫째 줄에 N번째 큰 수를 출력한다.
메모리제한이 10mb 이기 때문에, for 내부에서 계속 pop해줬음
#include <iostream>
#include <queue>
#include <functional>
using namespace std;
int main() {
int n;
priority_queue<int,vector<int>,greater<int>> q;
scanf("%d", &n);
int tmp;
for (int i = 0; i < n*n; i++) {
scanf("%d", &tmp);
q.push(tmp);
if (q.size() == n+1) {
q.pop();
}
}
printf("%d", q.top());
}
반응형
'프로그래밍 > 알고리즘 문제풀이' 카테고리의 다른 글
[백준] [c++] 1915 번 가장 큰 정사각형 (0) | 2020.08.06 |
---|---|
[백준] [c++] 1012 번 유기농배추 (0) | 2020.08.06 |
[백준] [c++] 9324 번 진짜 메시지 (0) | 2020.08.06 |
[백준] [c++] 2609, 1934 최대공약수와 최소공배수 (0) | 2020.08.06 |
[백준] [c++] 1016 번 제곱ㄴㄴ수 (0) | 2020.08.06 |