Programmers Review

[Lv 2] 귤 고르기

hanseongbugi 2024. 7. 4. 17:03

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

가장 적은 종류의 귤로 k개를 고르는 방법은

배열에 귤의 종류에 따른 개수를 저장한 후 큰수대로 정렬하여 k개만큼 빼면 해결할 수 있다.

 

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(int k, vector<int> tangerine) {
    int answer = 0;
    vector<int> v(10000001);
    
    for(int i = 0;i<tangerine.size();i++)
        v[tangerine[i]]++;
    
    sort(v.begin(),v.end(),greater<int>());
    int i = 0;
    while(k > 0){
        k -= v[i];
        i++;
        answer++;
    }
    
    return answer;
}