문제


풀이
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
int[] arr = new int[score.length];
Arrays.sort(score);
int cnt=0;
for(int i=score.length-1; i>=0; i--){
arr[cnt++] = score[i];
}
int index=0;
while(true){
if(index>score.length || index+m>score.length) break;
answer += arr[index+m-1] * m;
index += m;
}
return answer;
}
}
- 먼저 배열을 역순으로 만들었다.
- index변수를 선언해서 m만큼 자르면서 최대이익 공식을 계산해서 answer에 저장. 이때 index변수의 위치가 배열의 길이보다 크거나(딱 갯수가맞는경우) , index+m이 배열의 길이보다 큰 경우(남은사과 부족)에는 break;