문제 링크 : https://www.acmicpc.net/problem/2217
그리디 알고리즘 문제이다.
"모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다." 라는 조건에 주의해서 문제를 풀면 된다.
오름차순으로 정렬한 뒤에 각 경우에 가능한 무게를 possilbe 리스트에 담았다.
(사용할 로프 min) * len(사용할 로프 개수) = (possilbe 원소) 이다.
import sys
N = int(sys.stdin.readline())
rope = [int(sys.stdin.readline()) for _ in range(N)]
rope.sort()
possible = []
for i in range(N):
possible.append(rope[i]*(N-i))
print(max(possible))