백준/실버
[백준 2075번] N번째 큰 수 (C++)
게임개발기원
2024. 3. 10. 14:21
문제링크 : https://www.acmicpc.net/problem/2075
2075번: N번째 큰 수
첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다.
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
int N, arr[2250001];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for(int i=0; i<N*N; i++)
{
cin >> arr[i];
}
sort(arr, arr+N*N); //정렬
cout << arr[N*N-N]; //N번째로 큰 수
return 0;
}
메모리 제한을 참고해야하는 문제이다.
우선 범위 값에 해당하는 1500*1500에 int 4바이트를 곱하면 9000000바이트가 나온다. (9MB)
따라서 메모리 제한의 12MB에 걸리지 않는 것을 볼 수 있다.
메모리 제한에 걸리지 않으므로, N*N까지 모두 입력받고 그대로 정렬해준 다음 N*N-N의 위치를 출력해주면 된다.