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

2023. 1. 12. 12:23알고리즘/문제풀이

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

 

코딩테스트 연습 - 과일 장수 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

문제를 제대로 읽자....

  • 점수 따로 과일 따로인 줄 알았지만 실제로는 과일이 score로 주어질 때 해당 score를 그대로 사용하면 되는 문제 
  • 즉 사과의 score가 실제 각 사과의 점수이자 가격  
  • 상자에 들어가는 사과  = m
  • 가격은 상자의 들어가는 사과의 점수 p *  사과의 개수 m
  • 사과의 상자 세트 갯수 만들기 

접근 방법

  • 주어진 과일 - score를 내림차순으로 정렬
  • 주어진 과일의 갯수가 만약 세트를 못 만드는 경우 뒤에서 pop()을 사용하여 해당 과일 제거
  • 리스트를 쪼개서 해당 세트를 만든다
  • for 반복문을 통해 해당 리스트에서 최솟값(p)과 m을 곱하여 세트의 가격 설정 후 answer에 더하기

 

풀이 코드

def solution(k, m, score):
    answer = 0
    score = sorted(score,reverse=True)
    
    if len(score)%m !=0 : 
        for i in range(len(score)%m ):
            score.pop()
    score = [score[i * m:(i + 1) * m] for i in range((len(score) + m - 1) // m )] 
    for i in score:
        answer += min(i)*m

    return answer