https://school.programmers.co.kr/learn/courses/30/lessons/138476
구현 아이디어 3분 구현 9분
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
int N = tangerine.size();
map<int, int> data;
for(int i = 0; i < N; ++i) data[tangerine[i]]++;
vector<int> result;
for(auto it : data)
result.push_back(it.second);
sort(result.begin(), result.end(), greater());
//for(auto it : result)
//printf("%d ", it);
int sum = 0;
for(int i = 0; i < result.size(); ++i)
{
sum += result[i];
if(sum >= k)
{
answer = i + 1;
break;
}
}
return answer;
}