문제: https://school.programmers.co.kr/learn/courses/30/lessons/135808
1. 코드
import java.util.*;
class Solution {
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;
}
}
2. 설명
최대의 이익을 남기기 위해서는 사과 점수가 최대로 높은 것들로만 상자에 담아야합니다.
따라서 score를 정렬을 하면 올림차순이기에 반복문을 통해서 m개 씩 담기는 상자 중 가장 작은 점수를 가진 사과에 접근하여 그 점수 * m을 한 것을 answer에 더해주면 문제는 해결됩니다.
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 42840번: 모의고사 [Java] (0) | 2023.07.27 |
---|---|
프로그래머스 - 159994번: 카드 뭉치 [Java] (0) | 2023.07.26 |
프로그래머스 - 1845번: 폰켓몬 [Java] (1) | 2023.07.24 |
프로그래머스 - 138477번: 명예의 전당 (1) [Java] (2) | 2023.07.23 |
프로그래머스 - 176963번: 추억 점수 [Java] (0) | 2023.07.22 |