주어진 로프들을 연결했을 때 하중이 고르게 분산된다.
k개의 로프가 있고, 하중에 w라고 할때, k개의 로프를 모두 연결하면 w/k 의 하중이 각 로프게 고르게 걸린다.
입력으로 각 로프가 버틸 수 있는 최대하중이 주어질 때, 로프들을 사용하여 버틸 수 있는 전체 하중의 최댓값을 구하는 문제이다. 이 때, 로프는 다 사용하지 않아도 된다 !
k개의 로프가 존재할때 각 로프의 최대 하중을 라고 하고, i는 사용한 로프의 갯수라고 하자.
로프를 하나씩 추가하면서 버틸 수 있는 하중의 최댓값을 갱신해 나가며 풀면되는 것이다.
[35, 7, 20, 15] 라는 4개의 로프가 주어졌을때, 리스트의 요소를 하나씩 추가하면서 최대값을 갱신해보자. 반복문에 들어가기전, 최대한 많이 버틸 수 있는 로프들로만 이루어진 로프가 당연히 좋으므로, 내림차순 정렬을 하고 들어가자 !
내림차 순으로 정렬 후, 세 개까지의 로프를 사용했을 때의 하중이 최대하중인 것을 알 수 있다 !
num = int(input())
ropes = list()
for i in range(num):
ropes.append(int(input()))
ropes.sort(reverse=True)
max = 0
for i in range(len(ropes)):
if max < (i+1)*ropes[i]:
max = (i+1)*ropes[i]
print(max)