●문제

●입출력

푼방법
unordered_map으로 key값을 tangerine의 크기 value값으로 key값이 몇개 되어있는지 체크
내림차순으로 정렬한뒤 많은 key부터 더하면서 체크
#include <string>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine)
{
//[1 2 2 3 3 4 5 5]
//unordered_map으로 key : 무게 / value : 갯수
unordered_map<int, int>countMap;
for (int tangerineNumber : tangerine)
countMap[tangerineNumber]++;
vector<int> tangerineNum;
for (auto pair : countMap)
tangerineNum.push_back(pair.second);
//내림차순으로 정렬
sort(tangerineNum.begin(), tangerineNum.end(), greater<int>());
//value값이 많은 key부터 더하면서 k개 채우기
int sum = 0;
int result = 0;
for (int c : tangerineNum)
{
sum += c;
result++;
//만약 k >= value일떄 스탑
if (sum >= k)
break;
}
return result;
}
레벨 : 2
점수 : 2
'C++ 프로그래머스 > 기타 문제' 카테고리의 다른 글
| 프로그래머스(C++) - 예상 대진표 (0) | 2025.10.12 |
|---|---|
| 프로그래머스(C++) - 영어 끝말잇기 (0) | 2025.10.12 |
| 프로그래머스(C++) - 멀리뛰기 (0) | 2025.10.10 |
| 프로그래머스(C++) - 다음 큰 숫자 (0) | 2025.08.02 |
| 프로그래머스(C++) - 숫자의 표현 (0) | 2025.08.01 |
