728x90
0. [C++] SW Expert Academy |
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWslG2zqFQcDFASy
1. 풀이 |
들어온 입력을 정렬하고, 뒤에서부터 탐색을 하는것이 시간 단축의 포인트
2. 소스코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include<iostream> #include<string> #include<vector> #include<cstring> #include<algorithm> using namespace std; int arr[500001]; int findH(int N) { int max_num = 0; for (int i = 1; i <= N; i++) { if (arr[N - i] >= i) max_num = i; } return max_num; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int T, N; cin >> T; for (int i = 1; i <= T; i++) { cin >> N; for (int j = 0; j < N; j++) { cin >> arr[j]; } sort(arr, arr + N); /*for (int j = 0; j < N; j++) { arr[j] = j; }*/ cout << "#" << i << " " << findH(N) << "\n"; } return 0; } | cs |
3. 참고 |
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!