개인 공부 공간/Algorithm
BOJ(백준) 2217번 로프 파이썬
Hoon Kang
2021. 3. 22. 22:21
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
코드
import sys
r=sys.stdin.readline
N,*l=int(r()),
for i in range(N): l.append(int(r()))
l = sorted(l, reverse=True)
res = []
for i in range(len(l)):
res.append((i+1) * l[i])
print(max(res))
해설
각 로프들이 버틸 수 있는 최대 중량들이 (10, 6, 4) 이라고 하면 (10X1, 6X2, 4X3) 중 최대값을 구하면 문제가 요구하는 로프들을 이용해서 들어올릴 수 있는 물체의 최대 중량을 구할 수 있다. 이를 이용해 인풋값들은 저장한 리스트를 sorted
를 이용해 정렬한 후 문제를 해결하였다.
결과