map
을 이용하는 문제
map
의 key
는 귤의 크기, value
는 그 크기 귤의 개수v
에 넣어 내림차순 정렬cnt
가 k
를 넘을 때까지 answer++
를 해주고 cnt
에 방금 넣어진 귤의 개수를 더해준다.#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
map<int, int> m;
for(int i=0;i<tangerine.size();i++)
{
m[tangerine[i]]++;
}
vector<int> v;
for(auto u:m)
{
v.push_back(u.second);
}
sort(v.begin(), v.end(), greater<int>());
int cnt=0;
for(int i=0;i<v.size();i++)
{
if(cnt>=k) break;
answer++;
cnt+=v[i];
}
return answer;
}