본문 바로가기
알고리즘

[백준] 2217번: 로프 - python

by 육빔 2024. 3. 19.
728x90
반응형

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

 

2217번: 로프

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

www.acmicpc.net

 

처음에 짠 무지성코드

n = int(input())

arr = []
for i in range(n):
    arr.append(int(input()))

arr.sort()

print(arr[0]*n)

 

바로 제출했지만 틀린거보고 

 

'모든 로프를 사용해야 할 필요는 없으며, 임의로 몇 개의 로프를 골라서 사용해도 된다' 를 보고 바로 정신차리고 다시 작성.

 

n = int(input())

arr = []
for i in range(n):
    arr.append(int(input()))

arr.sort()

max = 0
sum = 0 

for i in range(n):
    sum = arr[i] * (n-i)
    if max < sum:
        max = sum

print(max)

 

정렬한뒤 가장 아래 로프에서 n-i개씩 곱하여 max값을 찾아나가는 형태로 작성하였다.

728x90
반응형