#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(int a, int b)
{
return a > b;
}
int solution(int k, vector<int> tangerine) {
int answer = 0;
int arr[10000001] = {0,};
for (int i = 0; i < tangerine.size(); i++)
arr[tangerine[i]]++;
sort(arr, arr + 10000001, compare);
for (int i = 0; i < 10000001; i++)
{
answer += arr[i];
if (answer >= k)
return i + 1;
}
}
귤의 종류(크기)를 담을 배열 arr을 선언하고 그곳에 tangerine배열의 원소값 인덱스를 올려준다.
그리고 오름차순으로 정렬 한 후, 반복문을 돌며 answer의 크기가 k를 넘어선다면 인덱스 + i 를 return해준다.
크기가 작은 값부터 더하며, 그 값이 k를 넘어간다면 그 순간이 크기 종류의 최솟값이기 때문이다.