백준/그리디
# 2217 로프
bright_code
2021. 3. 8. 14:53
728x90
반응형
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
# 2217
n = int(input()) # 로프의 수
data = []
for i in range(n):
data.append(int(input()))
data.sort(reverse=True)
max_w = []
for i in range(n):
max_w.append( data[i]*(i+1))
print(max(max_w))
너무 어렵게 생각하지 않는 것이 중요하다.
기본적으로 입력받은 중량 값을 역으로 정렬하여 사용한다.
우선, 가장 기본적으로 들 수 있는 중량은 제일 큰 로프의 중량 값이다.
2가지의 로프를 사용한다면,
가장 큰 로프는 그다음으로 큰 로프보다 항상 크므로
두 번째 로프의 2배만큼의 중량을 들 수 있을 것이다.
3가지의 로프를 사용하고.. 그 이상의 로프를 사용한다고 해도 마찬가지이다.
이렇게 새로운 배열을 만들고 나서 가장 큰 값을 고르면 된다.
728x90
반응형