https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
과일 장수라는 문제 Java로 풀이하겠습니다.
이 문제는 과일 장수가 판매하는 사과에 대한 최대 이익을 계산하는 문제입니다.
주어진 조건은 다음과 같습니다.
- 사과는 1점부터 k점까지 점수로 분류됩니다.
여기서는 최상품의 사과의 점수입니다. - 사과를 m 개씩 담아 상자에 판매하며, 각 상자의 가격은 상자에 들어있는 사과 중 최저 점수 p에 따라 결정됩니다.
따라서 한 상자의 가격은 p*m이 됩니다. - 과일 장수는 가능한 많은 사과를 팔아 최대 이익을 얻고자 합니다.
상자 단위로만 판매하며, 남는 사과는 버립니다.
저는 다음과 같이 풀이하였습니다.
import java.util.Arrays;
class Solution {
public int solution(int k, int m, int[] score) {
Arrays.sort(score);
int totalProfit = 0;
int boxCount = score.length;
while (boxCount - m >= 0) {
boxCount -= m;
int minScore = score[boxCount];
totalProfit += minScore * m;
}
return totalProfit;
}
}
- 주어진 사과의 배열을 오름차순으로 정렬합니다.
- 상자 단위로 사과를 판매하는 루프를 시작합니다.
현재 상자에 담길 m개의 사과를 제외하고 남은 사과의 개수를 업데이트합니다.
그리고 상자에 들어간 사과 중 가장 작은 점수를 찾아 이익을 계산하고 총이익에 더합니다. - 최종적으로 계산된 총이익을 반환합니다.
이견이 있으시다면 자유롭게 댓글 남겨주세요.

'Algorithm > CodingTest' 카테고리의 다른 글
[Programmers] 2024 KAKAO WINTER INTERNSHIP 가장 많이 받은 선물 (Java) (0) | 2024.04.02 |
---|---|
[Baekjoon] 1094번 막대기 (java) (2) | 2024.01.14 |
[Programmers] PCCE 기출문제 10번 / 데이터 분석 (0) | 2024.01.07 |
[Programmers] PCCE 기출문제 9번 / 이웃한 칸 (1) | 2024.01.02 |
[Baekjoon] 1173번 운동 (Java) (2) | 2023.11.12 |