과일 장수

Seongjin Jo·2023년 2월 21일
0

프로그래머스 LV1

목록 보기
18/31

문제

풀이

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;
    }
}
  1. 먼저 배열을 역순으로 만들었다.
  2. index변수를 선언해서 m만큼 자르면서 최대이익 공식을 계산해서 answer에 저장. 이때 index변수의 위치가 배열의 길이보다 크거나(딱 갯수가맞는경우) , index+m이 배열의 길이보다 큰 경우(남은사과 부족)에는 break;

0개의 댓글