문제를 해매는 가장 큰 이유 : 매번 비슷한데 갯수를 따로 한 번 더 저장을 하면 되는데 이 방식을 기억을 못함.,..
그리고 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 |