알고리즘/프로그래머스
광물 캐기
1.5볼트
2023. 3. 24. 20:40
728x90
곡괭이가 광물을 보다 적다면 일단 앞에서 몇 개까지 가능한지 뽑는다
그리고 뽑은 광물은 순서가 상관없으니까 곡괭이 했을 때 피로도가 몇씩 다는지 확인한다
그러면 그 합이 가장 큰 광물들이 가장 좋은 곡괭이로 때려야 함
순서대로 곡괭이 소모하면서 피로도 더해준다 원하는 단어나 문장을 입력해 주세요.
def solution(pic, t):
a=b=c=0
l=[]
for n,i in enumerate(t,start=1):
if i[0]=="d":
a+=1
elif i[0]=="i":
b+=1
else:
c+=1
if n%5==0:
l.append([a,b,c])
a=b=c=0
if a+b+c!=0:
l.append([a,b,c])
l=l[:sum(pic)]
t=sorted([(i[0]*1+i[1]*1+i[2]*1,i[0]*5+i[1]*1+i[2]*1,i[0]*25+i[1]*5+i[2]*1) for i in l],key=lambda x:-sum(x))
s=0
for n,i in enumerate([0]*pic[0]+[1]*pic[1]+[2]*pic[2]):
if n>len(t)-1:
break
s+=t[n][i]
return s