그럴듯한 개발 블로그
반응형

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;
}
반응형
profile

그럴듯한 개발 블로그

@donghyk2

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!