Input
첫째 줄에 정수 N이 주어진다.
다음 N개의 줄에는 각 로프가 버틸 수 있는 최대 중량이 주어진다. 이 값은 10,000을 넘지 않는 자연수이다.
1 | import sys |
Greedy
처음에는 문제 이해를 잘못 했었음. 여러 물체를 들 수 있는 줄 알았지.. 근데 생각해보면 이건 그냥 sum을 구하는 문제다 ㅋㅋ 암튼
- 물체는 최대 중량으로 한 개 들어야 함
- 여러 로프로 나누어 들어도 되고, 모든 로프를 쓸 필요는 없음
일단 sorted
부터 써야 한다. 가장 작은 중량치를 가진 로프를 기준으로 할 건지, 큰 중량치를 기준으로 할 건지부터 정해야 하기 때문.
1 | s = sorted(s) |
- 작은 중량치가 기준일 경우: n배
- 큰 중량치가 기준일 경우: 해당 중량 = 최대
1 | for i in range(n-1): |
이걸 처음엔 중첩 for문으로 작성했었다. 근데 생각해보면 쓸데없는 계산이 들어갔었음. 위와 같이 줄일 수 있다.