[프로그래머스] 13 : 과일 장수

서예진·2024년 1월 25일
0

목차 💻

▸ 과일 장수


💡 과일 장수 : Lv.1

▼ 문제

출처: 프로그래머스 코딩테스트 연습 > 연습문제 > 과일 장수

▼ 내 풀이

  • 먼저 사과 점수가 담긴 배열안에서 최소값을 찾아야겠다고 생각했다.
  • 또한, 만들 수 있는 사과박스의 수를 계산한다.
  • 배열을 오름차순으로 정렬한다. 점수를 오름차순으로 정렬하고 뒤에서부터 m만큼의 사과를 가져와 사과박스를 만드는 방식으로 접근했다.
  • 만들 수 있는 사과박스의 수 만큼 for문을 돌면서 subList 메서드를 활용하여 사과박스를 만들었다.이 때의 점수를 더해나갔다.
  • subLis 메서드의 index는 -= m 을 통해서 원하는 index의 사과를 가져와 사과박스를 만들었다.
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

class Solution {
    public int solution(int k, int m, int[] score) {
        int appleboxCount = score.length/m; 
        List<Integer> appleScores = new ArrayList<>();
        int finalScore = 0;
        int startindex = score.length-m;
        int endindex = score.length;
        
        //score 배열에서 최솟값 구하기
        Arrays.sort(score);
        int min = score[0];
        
        //
        for(int i = 0; i < score.length; i++){
            appleScores.add(score[i]);
        }
        
        //사과박스 만들기
        for(int i = 0; i < appleboxCount; i++){
            List<Integer> appleBox = appleScores.subList(startindex, endindex);
            finalScore += appleBox.get(0)*m;
            startindex -= m;
            endindex -= m;
        }
        
        return finalScore;
    }
}
profile
안녕하세요

0개의 댓글