알고리즘/백준

백준 2217: 로프 (Python)

sssbin 2021. 9. 29. 14:55

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

 

2217번: 로프

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

www.acmicpc.net

 

처음엔 무조건 n개의 로프를 써야 한다고 생각해서 로프의 최솟값 * 로프의 개수를 출력했다 - 틀림

n = int(input())
m = 10000

for i in range(n):
    rope = int(input())
    if rope < m:
        m = rope

print(m * n)

다시 푼 코드

import sys
n = int(sys.stdin.readline())
rope = []
res = []

for i in range(n):
    rope.append(int(sys.stdin.readline()))

rope.sort(reverse=True)

for i in range(n):
    res.append(rope[i] * (i + 1))

print(max(res))

 

 

어차피 최댓값을 구해야 하기 때문에 작은 값 하나는 의미 없음

따라서 리스트를 큰 수부터 정렬한 후 차례대로 쓰인 로프의 개수를 곱하고 그 중 최댓값을 출력하도록 했다!

 

 

ㅎㅎ.