
https://school.programmers.co.kr/learn/courses/30/lessons/172927
마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다.

각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다.
마인이 갖고 있는 곡괭이의 개수를 나타내는 정수 배열 picks와 광물들의 순서를 나타내는 문자열 배열 minerals가 매개변수로 주어질 때, 마인이 작업을 끝내기까지 필요한 최소한의 피로도를 return 하는 solution 함수를 완성해주세요.
def solution(picks, minerals):
# 곡괭이 없으면 0
if sum(picks) == 0 :
return 0
# 최대 캘 수 있는 광물 수
# 곡괭이가 부족하면 잘리고, 남으면 전부 다 캔다.
minerals = minerals[0:sum(picks)*5]
# 한 번에 5번씩 잘라서 각 d,i,s마다 소모 피로도 계산
count = []
for i in range(0, len(minerals), 5):
l = minerals[i:i+5]
di = len(l)
ir = l.count("diamond")*5 + l.count("iron") + l.count("stone")
st = l.count("diamond")*25 + l.count("iron")*5 + l.count("stone")
count.append([di, ir, st])
answer = 0
count.sort(key=lambda x: (-x[2], -x[1], -x[0]))
for c in count:
if picks[0] > 0:
answer += c[0]
picks[0] -= 1
elif picks[1] > 0:
answer += c[1]
picks[1] -=1
elif picks[2] > 0:
answer += c[2]
picks[2] -= 1
# 최소 필요도
return answer