-
[Java/프로그래머스] 과일 장수코딩테스트 2024. 2. 15. 12:33
https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제설명
result
3 4 [1, 2, 3, 1, 2, 3, 1] 8
4 3 [4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2] 33
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
다음과 같이 사과 상자를 포장하여 모두 팔면 최대 이익을 낼 수 있습니다.
사과 상자 가격
[1, 1, 2] 1 x 3 = 3
[2, 2, 2] 2 x 3 = 6
[4, 4, 4] 4 x 3 = 12
[4, 4, 4] 4 x 3 = 12
따라서 (1 x 3 x 1) + (2 x 3 x 1) + (4 x 3 x 2) = 33을 return합니다.2. 문제풀이
import java.util.*; class Solution { public int solution(int k, int m, int[] score) { int answer = 0; // 주어진 배열을 오름차순으로 정렬 Arrays.sort(score); // 배열의 뒤에서부터 m개씩 묶어서 판매 for (int i = score.length - m; i >= 0; i -= m) { // 현재 팔릴 상자의 점수 int boxScore = score[i]; // 현재 팔릴 상자에 들어갈 사과 개수 (m개 또는 남은 사과 개수) int applesInBox = Math.min(m, score.length - i); // 현재 팔릴 상자의 이익을 누적 answer += boxScore * applesInBox; } // 최종적인 이익을 반환 return answer; } }
'코딩테스트' 카테고리의 다른 글
[Java/프로그래머스] 콜라 문제 (0) 2024.02.20 [Java/프로그래머스] 카드 뭉치 (0) 2024.02.20 [Java/프로그래머스] 이상한 문자 만들기 (0) 2024.02.15 [Java/프로그래머스] 체육복 (0) 2024.02.15 [Java/프로그래머스] 옹알이 (2) (0) 2024.02.13