본문 바로가기
프로그래머스 풀이

프로그래머스 -과일 장수 - LV1

by 반오십 코린이 2023. 1. 8.
728x90


문제를 이해하면 어렵지 않은 문제.

최대 이익을 얻기 위해선 최대한 점수가 높은 사과끼리 모아놓아야 한다.

하나라도 점수가 낮은 사과를 상자에 담으면 가치가 대폭 하락하기 때문이다.

그렇기에 리스트에서 값을 편하게 쓰기 위해 내림차순으로 정렬하여 

밸류가 높은 사과를 전방으로 끌어와 한 상자에 담긴 사과의 개수 만큼 넣어주며

총 이익을 계산한다.

단, 한 상자에 들어가는 사과의 개수 보다 남은 사과의 개수가 작을 경우 버리는 로직 또한 구현하자


 

def solution(k, m, score):
    answer = 0
    length = len(score)    
    score.sort(reverse = True)
    for i in range(0, length, m): #step을 m으로 둔다
        if length - i < m: #남은 사과의 수가 한 상자에 들어가는 사과 수 보다 작을 경우
            break # 반복문 나오기
        answer += min(score[i:i+m]) * m # 가치 계산하는 로직
                             
    return answer
    


#3322111
728x90