본문 바로가기
파이썬 알고리즘 문제풀이

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

by monsangter 2023. 4. 3.

def solution(k, m, score):
    answer = 0
    
    score.sort(reverse=True)
    
    
    for i in range(len(score) // m):
        answer += score[m-1+(m *i)] * m
        
    return answer

#일단 큰 사과부터 담아야함.
#정렬을 해서 그 인덱스가 최악의 사과가 되겠지.

 

score 배열 내림차순으로 정렬.

 

첫번쨰 상자 최악의 사과는 m-1번 인덱스에 위치

두번쨰 상자 최악의 사과는 m-1 + m 번 인덱스에 위치

세번쨰 상자 최악의 사과는 m-1 + 2m번 인덱스에 위치.

 

즉 일반식 세울 수 있다.

 

그렇다면 for문은 몇회 반복해야 하는가?

 

score배열의 길이에서 상자가 만들어지는 수. len(score)//m번 반복하면 된다. 

 

 

댓글