https://school.programmers.co.kr/learn/courses/30/lessons/138476
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
unordered_map에 값 받아서 vector로 옮기고 정렬 하면 되는 문제다.
#include <string>
#include <vector>
#include <algorithm>
#include <unordered_map>
using namespace std;
bool ft_cmp(pair<int, int> a, pair<int, int> b)
{
return (a.second > b.second); // 역순 정렬
}
int solution(int k, vector<int> tangerine) {
int answer = 0;
unordered_map<int, int> map;
for (int i = 0; i < tangerine.size(); i++)
{
if (map.find(tangerine[i]) == map.end()) // 없으면
map[tangerine[i]] = 1;
else
map[tangerine[i]] += 1;
}
vector<pair<int, int>> v(map.begin(), map.end()); // (key, value)를 pair로 가지는 vector 만들어줌
sort(v.begin(), v.end(), ft_cmp);
for (int i = 0; k > 0; i++)
{
k -= v[i].second;
answer++;
}
return answer;
}
'<algorithm> > 프로그래머스' 카테고리의 다른 글
프로그래머스 괄호 회전하기 c++ (0) | 2023.06.01 |
---|---|
프로그래머스 연속 부분 수열 합의 개수 c++ (0) | 2023.05.29 |
프로그래머스 오픈채팅방 c++ (0) | 2023.05.29 |
프로그래머스 최고의 집합 c++ (0) | 2023.05.28 |
프로그래머스 멀리 뛰기 c++ (0) | 2023.05.28 |