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
반응형
'백준 > 그리디' 카테고리의 다른 글
#13305 주유소 파이썬 (0) | 2021.03.08 |
---|---|
# 4796 캠핑 (0) | 2021.03.08 |
# 1439번: 뒤집기 (0) | 2020.10.15 |
# 1931 회의실 배정 (0) | 2020.09.18 |
# 14720 우유 축제 (0) | 2020.09.18 |