묶음에서 가장 낮은 점수를 기준으로 판매가격이 정해지므로 각 묶음마다 최소값을 최대한 크게끔 하면된다. 즉 내림차순으로 정렬한뒤 해당 개수 만큼 판매하면 된다는 의미이다.
#include <string>
#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>());
for(int i=0;i<score.size();i++)
if((i+1)%m==0) answer += score[i]*m;//m번째 사과의 가격으로 묶음 가격을 결정
return answer;
}