[풀이]
문제에 어떻게 최대의 양을 구해야하는지 나와있어서 정렬만 신경 써주면 된다. (내림차순 정렬) 더하는 앞의 값은 최대로, 나눠지는 수는 그다음 위치의 수로 입력되면 최대의 양을 구할 수 있다. for 반복문 안의 식은 문제에 나와있는대로 입력하면 쉽게 구할 수 있다.
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int,input().split()))
arr.sort(reverse = True)
for i in range(0,n-1):
if arr[i] >= arr[i+1]:
temp = arr[i] + (arr[i+1]/2)
arr[i+1] = temp
else:
temp = arr[i+1] + (arr[i]/2)
arr[i+1] = temp
print((arr[-1]))
'Algorithm > 백준' 카테고리의 다른 글
백준 13164번(Python) : 행복 유치원 (0) | 2021.03.15 |
---|---|
백준 20300번(Python) : 서강근육맨 (0) | 2021.03.15 |
백준 1758번(Python) : 알바생 강호 (0) | 2021.03.15 |
백준 14916번(Python) : 거스름돈 (0) | 2021.03.12 |
백준 11508번(Python) : 2+1 세일 (0) | 2021.03.11 |