파이썬/코딩테스트

[프로그래머스] 과일 장수 - Python(파이썬)

대전집주인 2024. 3. 23. 16:40
728x90
SMALL

 

문제 이해

  • 사과의 박스안에는 m개 만큼 들어간다
  • 사과박스 가격은 m * (사과박스에 들어있는 최저점수) 이다.
  • 최대의 이윤을 받으려면 사과박스를 어떻게 만들어야하는가

 

사과들을 역순으로 정렬 시켜서 리스트에 m개씩 분할시키기로 했다.

각 리스트들을 정렬하여 첫번째 값 최저점수를 뽑아 * m을 하였고 리스트에 담았다.

최종으로 리스트의 합계를 더한 값이 최대의 이윤을 만든 값이 된다.

 

def solution(k, m, score):
    score.sort(reverse=True)
    list_chunked = list_chunk(score, m)

    result = []
    for i in list_chunked:
      if len(i) == m:
        i.sort()
        result.append(i[0] * m)
    return sum(result)

# 리스트를 분할 해준다.
def list_chunk(lst, n):
    return [lst[i:i+n] for i in range(0, len(lst), n)]
728x90
LIST