컴퓨터공학/알고리즘

[백준] 2217. 로프

오도원공육사 2020. 5. 9. 16:33
반응형

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1≤N≤100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하지만

www.acmicpc.net

1. 문제

여러 로프와 각 로프의 최대중량이 주어질 때 해당 로프들의 조합으로 들 수 있는 최대 중량을 구하라.

 

2. 접근

여러 로프들에서 들 수 있는 중량이 가장 작은 로프부터 하나씩 제외해가며 최대중량을 비교한다.

 

3. 소스코드

n = int(input())
rope = [int(input()) for _ in range(n)]

def w(rope, n):
    rope.sort()
    max_w =  -999
    for i in rope:
        if max_w < i * n:
            max_w = i * n
        n -= 1
    return max_w

print(w(rope, n))

 

반응형