[Programmers] 과일 장수 - JAVA

최영환·2022년 11월 18일
0

Programmers

목록 보기
2/43
post-thumbnail

💡 문제

💬 입출력 예시

📌 풀이(소스코드)

import java.util.Arrays;
class Solution {
    public int solution(int k, int m, int[] score) {
        int answer = 0;

        Arrays.sort(score);

        for(int i = score.length; i >= m; i -= m){
            answer += score[i - m] * m;
        }

        return answer;
    }
}

📄 해설

  • 그리디 알고리즘 유형의 문제임을 파악해야함
  • 배열을 정렬한 후 뒤에서부터 인덱싱 처리를 해서 현재 인덱스 값에서 현재 인덱스 값 - m 만큼을 해준 인덱스까지 담는다고 생각하고 계산을 수행해야함
  • 현재 인덱스 값이 m 보다 작으면, 담을 수 없는 상태로(버린다)에 해당함
    -> 반복문 종료 조건(i >= m)
  • 그리디 유형임을 파악하고 정렬까지는 하였으나, 간단한 인덱스 처리인데 너무 어렵게 접근해버렸다.
profile
조금 느릴게요~

0개의 댓글