백준 2217번: 로프 (https://www.acmicpc.net/problem/2217)

 

풀이

디그리 알고리즘을 적용해 풀 수 있는 문제입니다.

최대 중량을 구하는 문제입니다.

우선 최대 중량을 구하기 위해 모든 로프의 가용 용량을 기준으로 오름차순 정렬을 합니다.

그리고 순서대로 접근하여 최대 중량을 갱신시켜주면 최적의 해를 구할 수 있습니다.

 

 

n = int(input())              # n(갯수)입력
list = []
for i in range(n):            # 각 로프 최대 중량 입력
    weight = int(input())
    list.append(weight)
list.sort()                   # 로프 최대 중량 정렬
result = 0

for i in range(n):            # 최대 중량을 갱신해주며 리스트의 요소들에 접근
    if list[i] * n > result:
        result = list[i] * n
    n = n - 1
print(result)

----------------------------------------------------------

 

n = int(input())
list = [0 for i in range(n)]
for i in range(n):
    list[i] = int(input())

list.sort()
result = 0
for i in range(n):
    result = max (result, (n - i) * list[i])

print(result)
반응형

+ Recent posts