[프로그래머스]귤 고르기
문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/138476
풀이
5분
map 자료구조를 이용해 크기별로 카운트 해서, 최소한의 종류 개수를 찾는다.
코드
#include <string>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
bool compare(pair<int,int> a ,pair<int,int> b){
return a.second > b.second;
}
int solution(int k, vector<int> tangerine) {
map<int,int> m;
for(int i : tangerine){
m[i] += 1;
}
vector<pair<int,int>> v(m.begin(),m.end());
sort(v.begin(), v.end(), compare);
for(int i = 0; i < v.size(); ++i){
k -= v[i].second;
if(k <= 0){
return i + 1;
}
}
return -1;
}