BAEKJOON #2217 로프
2020. 3. 23. 17:27ㆍ개발노트
이 문제의 저작권은 BAEKJOON에 있습니다.
https://www.acmicpc.net/problem/2217
문제는 위 링크에서 확인할 수 있습니다.
#로프
#https://www.acmicpc.net/problem/2217
N = int(input())
arr = [int(input()) for _ in range(N)]
arr = sorted(arr)
num = 0
for i in range(N, 0, -1):
if arr[N-i] * i > num:
num = arr[N-i] * i
print(num)
로프 N개가 있을 때 최대로 들 수 있는 무게를 구합니다.
k개의 로프를 사용하여 중량이 w인 물체를 들어 올릴 때,
각각의 로프에는 모두 고르게 w/k 만큼의 중량이 걸리기 때문에
오름차순으로 정렬된 로프무게의 배열에서 로프 개수를 1씩 줄여가며 서로 곱합니다.
예를 들어 3개의 로프가 있다면
N(로프 수) | arr(로프 무게) | 곱한 값 |
3 | 1 | 3 |
2 | 2 | 4 |
1 | 3 | 3 |
로프로 들 수 있는 최대 물체의 중량을 구하는 문제이므로 정답은 4가 됩니다.