2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
로프를 역정렬해서 계산한다.
예를 들어서,
로프가 [10, 8, 6, 4, 2] 이렇게 있다고 치면,
앞에서부터 하나씩 추가하면서 계산해보면
들 수 있는 최대무게는
[10, 16, 18, 24, 10]이 된다.
로프의 개수 x 하중의 최소가 되는 것이다.
from sys import stdin
input = stdin.readline
N = int(input())
rope = []
for _ in range(N):
rope.append(int(input()))
rope.sort(reverse=True)
answer = rope[0]
cnt = 1
for i in range(1, N):
cnt += 1
tmp = cnt * rope[i]
if tmp > answer:
answer = tmp
print(answer)
'PS' 카테고리의 다른 글
[BOJ] 2565번 전깃줄 문제 - Python (0) | 2021.03.25 |
---|---|
[BOJ] 1068번 트리 문제 - Python (0) | 2021.03.10 |
[BOJ] 1309번 동물원 문제 - Python (0) | 2021.03.08 |
[BOJ] 15666번 N과 M (12) 문제 - Python (0) | 2021.03.04 |
[BOJ] 15664번 N과 M (10) 문제 (0) | 2021.03.03 |