문제

문제 해석
1. 처음에는 조합으로 푸는 줄 알고 의사 코드를 만들어서 풀었다가 해당 방법이 잘못된 해석임을 알았다.
2. score를 오름차순으로 정렬하여 m만큼 인덱스를 증가시키며 과일의 점수를 찾아내고 상자에 담은 다음 제시된 공식으로 얻을 수 있는 이익을 구해 답에 더해주면 되는 문제이다.
코드
#include <vector>
#include <algorithm>
using namespace std;
int solution(int k, int m, vector<int> score) {
int Answer = 0;
sort(score.begin(), score.end(), greater<int>());
size_t ScoreCount = score.size();
for(size_t IDX = m - 1; IDX < ScoreCount; IDX += m)
{
Answer += m * score[IDX];
}
return Answer;
}
다른 사람의 풀이
1. 비슷하게 정렬, 반복문으로 풀이
2. 정렬을 자동으로 이용하기 위해 우선순위 큐를 사용하는 풀이