나의 풀이
각 로프에 걸리는 최대 중량은 사용한 로프 중 최대 중량의 최솟값이다. (즉, 최대의 최소
의 개념!) 따라서 각 로프의 중량을 오름차순으로 정렬한 뒤에 하나씩 뽑아서 그 로프의 최대 중량을 기준으로 들 수 있는 최대 중량을 구했다. 식으로 나타내자면 $ max_{total} = min_{rope} * num_{ropes} $ 이를 코드로 나타내면 다음과 같다.
# 입력
import sys
n = int(sys.stdin.readline())
rope = []
weight = []
for _ in range(n):
rope.append(int(sys.stdin.readline()))
rope = sorted(rope)
# 처리
for i in range(n):
weight.append(rope.pop(0)*(len(rope)+1))
print(max(weight))