본문 바로가기
프로그래밍/알고리즘 문제풀이

[백준] [c++] 2075 번 n번째큰수

by 엽기토기 2020. 8. 6.
반응형

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());
	
}

반응형