과일 장수

이정연·2023년 1월 3일
0

CodingTest

목록 보기
103/165

문제 링크

해설

이 문제는 그리디하게 접근해야 한다. 왜냐하면 박스의 최소 점수를 높이기 위해서는 최대한 높은 점수의 사과를 선택해야 하기 때문이다.

문제를 푸는 데 k는 필요 없다.

그리디하게 풀기 위하여 score를 내림차순으로 정렬한 뒤, 점수 계산 공식에 의거하여 그 순간의 이익을 구한다.

그리고 그 이익들을 전부 합하면 사과 장수가 얻을 수 있는 최대 이익이 된다.

CODE

def calc(start,m,score):
    return min(score[start:start+m])*m

def solution(k, m, score):
    answer = 0
    score.sort(reverse=True)
    start = 0
    while start+m <= len(score):
        answer += calc(start,m,score)
        start += m
    return answer
profile
0x68656C6C6F21

0개의 댓글