본문 바로가기
Algorithm

[Programmers] 135808.py 과일 장수

by roses16 2023. 6. 7.

 

해결

문제 그대로 구현하지 않아도 내림차순으로 정렬된 배열의 m번째 요소마다 과일 박스의 최소값을 구할 수 있을 것으로 보였고 아래와 같이 해결.

 

def solution(k, m, score):
    answer = 0
    score = sorted(score, reverse=True)
    index = m - 1
    
    while True:
        if index >= len(score):
            break;

        answer += m * score[index]
        index += m

    return answer

다른 사람의 풀이에서 배운 점

해결한 후 반복문 없이 풀이한 아래와 같은 코드 발견.

 

def solution(k, m, score):
    return sum(sorted(score)[len(score)%m::m])*m

 

배열의 m번째 요소들의 합이라는 생각을 했을 때부터 반복문없이 sum으로 충분히 풀 수 있는 문제였는데 아쉽다.