✏️ 풀이 방법
<무게, 개수> 형태로 map에 귤 정보를 저장하고,
개수가 많은 순서대로 정렬한다.
k개만큼 골라낸 후 가지수만 세어주면 된다.
static bool comp(pair<int, int> &a, pair<int, int> &b)
{
return a.second > b.second;
}
int solution(int k, vector<int> tangerine)
{
int answer = 0;
map<int, int> m_sizes;
for (int i = 0; i < tangerine.size(); ++i)
{
m_sizes[tangerine[i]]++;
}
vector<pair<int, int>> v_sizes(m_sizes.begin(), m_sizes.end());
sort(v_sizes.begin(), v_sizes.end(), comp);
for (int i = 0; i < v_sizes.size(); ++i)
{
k -= v_sizes[i].second;
answer++;
if (k <= 0) break;
}
return answer;
}