Argorithm

[Programmers]LV.1 과일 장수

빙응이 2023. 12. 11. 17:28


📝풀이

사과의 최대 점수 k
한 상자에 들어가는 사과의 수 m
사과들의 점수 score 
1. 사과 배열에서 큰것부터 선택해서 점수 얻기 
2. 배열 계산을 통한 구현

내가 이해한 방법은 이것이다.

배열을 큰 수부터 정렬한 후 -> M개를 담는다 -> 해당 상자의 값은 가장 싼 사과에 m을 곱하는 것이다. 

 

그냥 정렬 후에 m번째 값을 계산하면 되지 않을까? 

 

import java.util.Arrays;
import java.util.Collections;

class Solution {
    public int solution(int k, int m, int[] score) {
        int answer = 0;
        Integer[] arr = new Integer[score.length];
        for(int i = 0; i < arr.length;i++)
            arr[i] = score[i];
        Arrays.sort(arr,Collections.reverseOrder());

        for(int i = m-1; i < score.length;i+=m){
            answer += arr[i]*m;
        }
        return answer;
    }
}

/*
사과의 최대 점수 k
한 상자에 들어가는 사과의 수 m
사과들의 점수 score 
1. 사과 배열에서 큰것부터 선택해서 점수 얻기 
2. 배열 계산을 통한 구현
*/