https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
/* 생각
가장 큰 점수의 사과가 m개를 만족하면 가장 큰 점수의 사과로 가득 채우는 게 가장 좋다.
점수가 큰 사과 순으로 담아가며 나오는 상자의 점수를 계산하면 된다.
*/
/* 의사코드
1. score[]를 오름차순 정렬한다.
2. 뒤에서부터 m개씩 자른다. 매 m번째 사과 점수가 상자의 가격이 된다.
3. m개씩 자르다가 배열을 넘어서면 버린다.
*/
int answer = 0;
Arrays.sort(score);
for(int i=score.length-1; i>=m-1; i-=m){
answer += score[i-m+1]*m;
}
return answer;
}
}
어렵지 않은 구현 문제였다.
'알고리즘 > 문제' 카테고리의 다른 글
| <다시풀기성공>[프로그래머스] lv2 귤고르기 / JAVA (0) | 2023.02.17 |
|---|---|
| [Programmers] 연속 부분 수열 합의 개수 / JAVA -> 실패 (0) | 2023.02.09 |
| [Programmers] 문자열 나누기 / JAVA (0) | 2023.01.13 |
| [프로그래머스] 가장 가까운 같은 글자 | JAVA (0) | 2022.12.18 |
| [프로그래머스] 로또의 최고 순위와 최저 순위 / JAVA (0) | 2022.12.05 |