Study/코딩 테스트

2021.1.31 [백준] 로프

NOredstone 2021. 1. 31. 14:57

그리디 알고리즘

 

 

Q

 

www.acmicpc.net/problem/2217

 

2217번: 로프

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

www.acmicpc.net

 

A

 

리스트를 오름차순으로 정렬하여 가장 뒤에 있는 큰 수를 기준으로 판단한다.

 

n = int(input()) #입력받기
data = list(int(input()) for _ in range(n)) #여러 줄의 하나의 숫자를 리스트로 입력받기
data.sort() #오름차순으로 정렬
result = 0

 

for i in range(n):
    if data[-1] <= (n - i) * data[i]:
        result = max(result, (n - i) * data[i]) #반복문에 속해 있으므로 혹시모를 오류를 위해 max 사용
    else:
        result = data[-1]
print(result)