본문 바로가기

코딩 테스트

귤 고르기

문제를 해매는 가장 큰 이유 : 매번 비슷한데 갯수를 따로 한 번 더 저장을 하면 되는데 이 방식을 기억을 못함.,..

그리고 100000 연산이라고 할 때 이 연산을 2번 3번 해도 O(N) 인건데 이걸 계속 까먹으니 sort 를 쓰기 무서워함...

 

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

using namespace std;

bool Compare(int a, int b)
{
    return a > b;
}

int solution(int k, vector<int> tangerine) {
    int answer = 0;
    vector<int> food;
    
    map<int, int> food1;
    for(int i = 0; i<tangerine.size(); ++i)
    {
        food1[tangerine[i]]++;
    }
    
    for(pair<int,int> a : food1)
    {
        food.push_back(a.second);
    }
    
    sort(food.begin(), food.end(), Compare);
    
    for(int i = 0; i<food.size(); ++i)
    {
        k -= food[i];
        answer++;
        if(k <=0)
        {
            break;
        }
    }
   
    
    return answer;
}

'코딩 테스트' 카테고리의 다른 글

백준 네번째점  (1) 2024.06.11
백준 회전하는 큐  (0) 2024.06.11
프로그래머스 타겟 넘버  (0) 2024.03.04
프로그래머스 피로도  (0) 2024.03.01
프로그래머스 1차 비밀지도  (0) 2024.02.14