[코딩테스트]
과일 장수 - 프로그래머스 - java
everydeveloper
2025. 5. 5. 18:25
과일 장수
🍎 문제: 과일 장수
- 각 사과에는 1~k 점수 존재
- m개씩 포장 → 최소 점수 × m = 상자 가격
- 최대 수익 구하기
🧠 핵심 아이디어
- 높은 점수 사과부터 m개씩 포장
- m개 단위로만 상자 구성 가능 → 일부 남는 사과는 버림
🧪 알고리즘
- 점수 오름차순 정렬
- 끝에서 m개씩 묶어 최소값 × m 누적
- 반복
🧱 코드 스니펫 (Java)
Arrays.sort(score);
for (int i = score.length - m; i >= 0; i -= m) {
total += score[i] * m;
}
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
// 1. 점수를 오름차순 정렬
Arrays.sort(score);
int total = 0;
// 2. 뒤에서부터 m개씩 묶어서 가격 계산
for (int i = score.length - m; i >= 0; i -= m) {
int min = score[i]; // 해당 묶음의 최솟값 (가장 마지막 위치)
total += min * m; // 상자 가격 = 최솟값 × 개수
}
return total; // 총 수익 리턴
}}