코드
#include <vector>
#include <algorithm> // sort()
#include <unordered_map> // 해시
using namespace std;
int solution(int k, vector<int> tangerine) {
int answer = 0;
unordered_map<int, int> hashmap;
vector<int> count;
for(int i=0;i<tangerine.size();i++)
{
hashmap[tangerine[i]]++; // 크기 별 개수 체크
}
for(auto n:hashmap){
count.push_back(n.second); // 크기 별 개수 값 count에 정리
}
sort(count.begin(), count.end(), greater<int>()); // greater<int>() : [start,end) 범위의 인자를 내림차순으로 정렬해 준다. -> 큰 크기 부터 비교하기 위함
int check=0;
for(int i=0;i<count.size();i++){
if(check>=k){ // 귤 담은 개수가 k보다 크거나 같을 때 반복문 탈출
break;
}
answer++; // 크기별 귤 개수 체크
check=check+count[i]; // 총 귤 개수 체크
}
return answer;
}
'C++ > programmers 코딩테스트(level 2) C++' 카테고리의 다른 글
[C/C++] programmers Level 2 영어 끝말잇기 (0) | 2023.10.11 |
---|---|
[C/C++] programmers Level 2 이진 변환 반복하기 (0) | 2023.10.11 |
[C/C++] programmers Level 2 멀리 뛰기 (0) | 2023.10.09 |
[C/C++] programmers Level 2 구명보트 (0) | 2023.10.08 |
[C/C++] programmers Level 2 카펫 (0) | 2023.10.08 |