boj 20115 : 에너지드링크
문제 주소: https://www.acmicpc.net/problem/20115
난이도: silver 4
1.문제설명
- 음료수가 N개 있다.
- N개를 합쳐서 하나의 음료로 만드려한다
- 이때 합치는 과정을 진행할 때 A를 B에 부을때 A의 반만 옮겨지고 나머진 버려진다.
- 합쳐진 음료의 양를 최대로 하려고 할때 이때 양은?
2.문제해결 아이디어.
- 제일 loss가 적게 합치면된다.
- 용량이 작은걸 상대적으로 용량이 큰거에 부으면된다.
- 사실 그냥 제일큰거에 다 부으면 된다.
3.문제접근법
4.특별히 참고할 사항
- 그리디 알고리즘은 대부분 sorting으로 해결가능한거같다.
5.코드구현
N = int(input())
drinks = list(map(int, input().split()))
drinks.sort()
ans = drinks[-1]
for i in range(N-1):
ans += (drinks[i]/2)
print(ans)