Algorithm
백준 알고리즘 파이썬(Python) 20115번 에너지드링크
🤖 Play with Android 🤖
2021. 5. 14. 15:49
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)