Level 2. 귤 고르기
unordered_map을 활용해 먼저 개수를 세고 귤의 개수를 기준으로 역순 정렬하여 해결했다.
최대 힙을 유지하는 우선순위 큐를 만들어 하나씩 뽑아도 될 것 같다.
#include <iostream>
#include <vector>
#include <unordered_map>
#include <algorithm>
using namespace std;
int solution(int k, vector<int> tangerine)
{
int answer;
unordered_map<int, int> umap;
for (int e : tangerine)
++umap[e];
vector<pair<int, int>> vec(umap.begin(), umap.end());
sort(vec.begin(), vec.end(), [](auto& a, auto& b) { return a.second > b.second; });
for (answer = 0; 0 < k; ++answer)
k -= vec[answer].second;
return answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 2. 할인 행사 (0) | 2023.03.14 |
---|---|
Level 2. 연속 부분 수열 합의 개수 (0) | 2023.03.13 |
Level 1. 개인정보 수집 유효기간 (0) | 2023.03.11 |
Level 1. 성격 유형 검사하기 (0) | 2023.03.10 |
Level 1. 신고 결과 받기 (0) | 2023.03.09 |