728x90
문제를 이해하면 어렵지 않은 문제.
최대 이익을 얻기 위해선 최대한 점수가 높은 사과끼리 모아놓아야 한다.
하나라도 점수가 낮은 사과를 상자에 담으면 가치가 대폭 하락하기 때문이다.
그렇기에 리스트에서 값을 편하게 쓰기 위해 내림차순으로 정렬하여
밸류가 높은 사과를 전방으로 끌어와 한 상자에 담긴 사과의 개수 만큼 넣어주며
총 이익을 계산한다.
단, 한 상자에 들어가는 사과의 개수 보다 남은 사과의 개수가 작을 경우 버리는 로직 또한 구현하자
def solution(k, m, score):
answer = 0
length = len(score)
score.sort(reverse = True)
for i in range(0, length, m): #step을 m으로 둔다
if length - i < m: #남은 사과의 수가 한 상자에 들어가는 사과 수 보다 작을 경우
break # 반복문 나오기
answer += min(score[i:i+m]) * m # 가치 계산하는 로직
return answer
#3322111
728x90
'프로그래머스 풀이' 카테고리의 다른 글
프로그래머스 -햄버거 만들기- LV1 (0) | 2023.01.08 |
---|---|
프로그래머스 -푸드 파이트 대회- LV1 (0) | 2023.01.08 |
프로그래머스 -문자열 나누기 - LV1 (0) | 2023.01.06 |
프로그래머스 -가장 가까운 같은 글자 - LV1 (0) | 2023.01.04 |
프로그래머스 -크기가 작은 부분 문자열 - LV1 (0) | 2023.01.04 |