그리디 알고리즘
Q
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)