728x90


그리디 문제를 풀다보면 정렬을 어떻게 하느냐가 문제의 Key인 경우가 많다

 

이 문제 역시 그러하다.

 

이 문제의 핵심은 에너지 드링크의 양을 내림차순으로 정렬하고 가장 양이 많은 에너지 드링크를 제외하고 2번째 부터 쭉 절반으로 나눈 값을 더해 result를 갱신해주는 것이다


 

n = float(input())
k = list(map(int, input().split())) #에너지 드링크 양을 k 리스트에 저장

k.sort(reverse = True) #에너지 드링크 양 내림차순으로 정렬

result = 0
count = 1
for i in k:
    if count == 1: #첫번째 에너지 드링크는 그대로 result 값에 넣어준다
        count += 1
        result += i
        continue
    else:
        result += (i/2) #두번째 에너지드링크부터 쭉 각 원소를 절반으로 나누어 result에 추가해준다. 
print(result)
복사했습니다!