오도원입니다.

건강과 행복을 위하여

컴퓨터공학/알고리즘

[백준] 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))

 

반응형

'컴퓨터공학 > 알고리즘' 카테고리의 다른 글

[백준] 1120. 문자열  (0) 2020.05.09
[백준] 10610. 30  (0) 2020.05.09
[백준] 11399. ATM  (0) 2020.05.09
DP. 동전 거스름돈과 이항계수  (0) 2020.05.01
동적계획법 소개  (0) 2020.05.01