문제 링크 : 과일 장수
public int solution(int k, int m, int[] score) {
int answer = 0;
Arrays.sort(score);
for(int i = score.length-m; i >= 0; i-=m) {
answer += score[i]*m;
}
return answer;
}
상자의 가격은 상자 안에 들어간 과일의 최소 가치에만 결정되므로, 최소 가치보다 높은 가치를 지닌 과일은 신경쓰지 않아도 된다는 생각으로 코드를 작성했다.
먼저 score 배열을 오름차순 정렬한 후, 상자에 들어가는 최소 가치의 과일 - 최대 가치의 과일에서부터 m번째에 위치한 과일 - 의 값에 m배를 곱해 계속해서 answer에 더해주는 식으로 코드를 작성했다.