문제링크 : https://www.acmicpc.net/problem/2075
#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의 위치를 출력해주면 된다.
'백준 > 실버' 카테고리의 다른 글
[백준 1449번] 수리공 항승 (C++) (0) | 2024.03.12 |
---|---|
[백준 10867번] 중복 빼고 출력하기 (C++) (0) | 2024.03.11 |
[백준 11004번] K번째 수 (C++) (0) | 2024.03.09 |
[백준 7795번] 먹을 것인가 먹힐 것인가 (C++) (0) | 2024.03.06 |
[백준 2343번] 기타 레슨 (C++) (2) | 2024.03.05 |