[c++/프로그래머스] 귤 고르기

조히·2023년 2월 21일
0

PS

목록 보기
25/82

문제 링크

귤 고르기

풀이

map을 이용하는 문제

  1. mapkey는 귤의 크기, value는 그 크기 귤의 개수
  2. 귤의 개수만 v에 넣어 내림차순 정렬
  3. cntk를 넘을 때까지 answer++를 해주고 cnt에 방금 넣어진 귤의 개수를 더해준다.

코드

#include <string>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

int solution(int k, vector<int> tangerine) {
    int answer = 0;
    
    map<int, int> m;
    for(int i=0;i<tangerine.size();i++)
    {
        m[tangerine[i]]++;
    }
    
    vector<int> v;
    for(auto u:m)
    {
        v.push_back(u.second);
    }
    
    sort(v.begin(), v.end(), greater<int>());
    
    int cnt=0;
    for(int i=0;i<v.size();i++)
    {
        if(cnt>=k) break;
        answer++;
        cnt+=v[i];
    }
    
    return answer;
}
profile
Juhee Kim | Game Client Developer

0개의 댓글