Python/백준 문제풀이
[백준 2217] 로프 파이썬 문제 풀이
코딩하는 친구
2023. 6. 29. 13:33
문제 풀이: 로프를 병렬로 연결하면 각 로프에는 w / k 만큼의 동일한 중량이 걸린다.
즉, 가장 작은 무게를 들 수 있는 로프가 들 수 있는 질량 * 병렬연결 로프의 개수
예를 들어 로프가 들 수 있는 중량이 다음과 같다면 [100, 80, 60, 40, 20]
중량 100을 들 수 있는 로프 한 개를 사용했을 때 들 수 있는 무게: 100
중량 80을 들 수 있는 로프 두 개를 사용했을 때 들 수 있는 무게: 80 * 2 = 160
중량 60을 들 수 있는 로프 세 개를 사용했을 때 들 수 있는 무게: 60 * 3 = 180
중량 40을 들 수 있는 로프 네 개를 사용했을 때 들 수 있는 무게: 40 * 4 = 160
중량 20을 들 수 있는 로프 다섯 개를 사용했을 때 들 수 있는 무게: 20 * 5 = 100
이 중에서 가장 큰 값이 답이다.
n = int(input())
ropes = []
for i in range(n):
ropes.append(int(input()))
ropes.sort(reverse=True)
max_weight = 0
for i in range(n):
k = ropes[i] * (i+1)
if k > max_weight:
max_weight = k
print(max_weight)