알고리즘/문제풀이
[Python] 프로그래머스 lv1 - 과일장수
skyriv
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