이 문제에서는 배열 arr가 주어집니다. 우리의 임무는 배열이 C++에서>=K인 적어도 K개의 요소를 갖도록 최대값 K를 찾는 프로그램을 만드는 것입니다.
문제 설명
배열에 K보다 크거나 같은 요소가 K개 이상 있다는 조건을 충족하는 값 K를 찾아야 합니다.
문제를 이해하기 위해 예를 들어보겠습니다.
입력 :arr[] ={3, 5, 1, 7, 6, 6, 4, 8}
출력 :5
설명
5보다 크거나 같은 배열의 요소:5, 6, 6, 7, 8.
솔루션 접근 방식
이 문제에 대한 간단하고 효과적인 해결책은 배열을 정렬하고 마지막 인덱스에서 요소 뒤의 요소 수가 요소 자체보다 큰지 확인하는 것입니다. 그렇다면 요소를 반환하십시오.
예시
#include <bits/stdc++.h> using namespace std; int CalcMaximumVal(int arr[], int N){ sort(arr, arr + N); for(int i = (N - 1); i >= 0; i--){ if(arr[i] <= (N - i) ) return arr[i]; } } int main(){ int arr[] = {4,7,2,3,8}; int N = sizeof(arr)/sizeof(arr[0]); cout<<"The maximum value K such that array has at-least K elements that are >= K is "<<CalcMaximumVal(arr, N); return 0; }
출력
The maximum value K such that array has at-least K elements that are >= K is 3