https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=cpp
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화
해당 문구에서 나온 내용을 기준으로 진행합니다.
1. map을 사용해서 크기별 귤의 수량 기록
2. map을 value를 기준으로 내림차순 정렬
3. k에서 value값을 하나씩 제거 및 카운트
#include <bits/stdc++.h>
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
map<int, int> m;
for (int i : tangerine) m[i]++;
vector<pair<int, int>> v(m.begin(), m.end());
sort(v.begin(), v.end(), [](pair<int, int> a, pair<int, int> b)
{
return a.second > b.second;
});
for (auto i : v)
{
if (k > 0)
{
k -= i.second;
answer++;
}
else break;
}
return answer;
}