파이썬 이것저것/코테준비

[Python] 프로그래머스 과일 장수

agingcurve 2023. 1. 1. 20:11
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/135808

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제풀이

def solution(k, m, score):
    answer = []
    n = 0
    cycle=len(score) // m # 사이클 수
    idx = m
    ci = 1 # 순번
    
    sort_score = sorted(score, reverse=True)
    while True:
        if cycle == 1: # 1번만 돌때는 바로 끝냄
            price = calbox(k, m, sort_score, n)
            answer.append(price)
            break
        if ci <= cycle:            
            price = calbox(k, m, sort_score, n)
            answer.append(price)
            n += idx
            m += idx
            ci += 1
        else:            
            break
    return sum(answer)

def calbox(k, m, score, n):
    if m <= len(score):
        applebox = score[n:m]
        price = min(applebox) * len(applebox)
    else:
        applebox = score[m:len(score)]
        price = min(applebox) * len(applebox)
    return price