토핑 칼로리를 내림차순으로 정렬하고 토핑을 추가하며 1달러당 열량의 수가 최대를 찾는다.
tT=int(input()) #토핑 타입 받기
dP,tP=map(int, input().split()) #도우 가격, 토핑 가격 받기
dC=int(input()) #도우 열량
tC=[] #토핑 칼로리 리스트 선언
for i in range(tT):
tC.append(int(input())) #토핑 칼로리들 받기
dCP=dC/dP #도우 1달러 당 열량
max=dCP #도우 1달러 당 열량을 max로
tC.sort(reverse=True) #큰 토핑 칼로리로 내림차순 정렬
count=1 #토핑 종류 카운트
for i in range(tT):#토핑 타입만큼 반복
tCP=(dC+sum(tC[:count]))/(dP+tP*count)#토핑을 하나씩 추가해보면서 1달러당 열량의 수 최대를 찾음
if(dCP>tCP):break #도우 열량이 제일 크면 break
if(max<tCP):
max=tCP
count+=1
print(int(max))
😂 문제를 이해하자
😂 간단하게 생각하자