[#20115] 에너지 드링크
문제
#20115 에너지 드링크
Silver3
적용 알고리즘: Greedy 알고리즘
풀이 방법
에너지 드링크 중 하나를 제외한 모든 드링크는 용량이 절반이 줄어든 채 더해진다. 즉, 가장큰 용량을 가진 드링크를 온전하게 보존하고, 나머지 드링크를 추가로 더한다.
코드 흐름
- 음료를 입력받고 이를 내림차순으로 정렬한다.
- 첫 번째 음료수는 온전하게, 나머지 드링크는 1/2하여 총 용량에 더한다.
코드
n = int(input())
drinks = [float(m) for m in input().split()]
drinks.sort(reverse=True)
total = 0
total += drinks[0]
for i in range(1, n):
total += drinks[i] / 2
print(total)
머리로 한번 생각만 하면 간단하게 풀 수 있는 문제였다.