개미의 개열시미 프로그래밍

[알고리즘] 백준2217 로프 - 파이썬 본문

알고리즘/그리디 & 구현

[알고리즘] 백준2217 로프 - 파이썬

YunHyeok 2021. 9. 10. 19:02
728x90
반응형

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

 

2217번: 로프

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

www.acmicpc.net

 

 

[풀이 코드]

n = int(input())
array = []

for _ in range(n):
    array.append(int(input()))

array.sort(reverse=True)

for index, value in enumerate(array):
    array[index] = value * (index+1)
    
print(max(array))

 

- 내림차순으로 정렬을 해준다. 처음엔 오름차순 정렬 후 제일 작은 요소 x 배열의 길이를 하면 답인 줄 알았다. 하지만 예제 입력을 15 2 10으로 준다면 2(제일 작은 요소) x 3(배열의 길이) = 6이 되는데 이는 최대 중량이 아니다.

 

- 먼저, 내림차순 정렬 후 병렬가능한 수를 곱해준다. => [15x1, 10x2, 2x3] 그리고 배열에서 가장 큰 수를 출력하면 된다.

728x90
반응형
Comments