프로그래머스/lv2/138476. 귤 고르기

SITY·2023년 9월 19일
0

Cpp_Algorithm

목록 보기
8/43

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

bool compare(int a, int b)
{
    return a > b; 
}
int solution(int k, vector<int> tangerine) {
    int answer = 0;
    int arr[10000001] = {0,};
    
    for (int i = 0; i < tangerine.size(); i++)
        arr[tangerine[i]]++;

    sort(arr, arr + 10000001, compare);
        
    for (int i = 0; i < 10000001; i++)
    {
        answer += arr[i];
        if (answer >= k)
            return i + 1;
    }
}

귤의 종류(크기)를 담을 배열 arr을 선언하고 그곳에 tangerine배열의 원소값 인덱스를 올려준다.
그리고 오름차순으로 정렬 한 후, 반복문을 돌며 answer의 크기가 k를 넘어선다면 인덱스 + i 를 return해준다.
크기가 작은 값부터 더하며, 그 값이 k를 넘어간다면 그 순간이 크기 종류의 최솟값이기 때문이다.

profile
·ᴗ·

0개의 댓글