백준 문제풀이 20115 에너지드링크

Kim. K.S·2021년 12월 29일
0

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)
profile
시원한 맥주, 음악, 야구, 사진찍기를 좋아합니다.

0개의 댓글