[백준]2217번-파이썬
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
1. 입력받은 데이터를 내림차순으로 정렬한다.
2. data[0]/data[0],data[1]/data[0],data[1],data[2]/data[0],data[1],data[2],data[3]/data[0],data[1],data[2],data[3],data[4]
으로 나누어서 생각한다.
· data[0] 의 경우 최대 중량
data[0] * 1
· data[0], data[1] 의 경우 최대 중량
data[1] * 2 (내림차순으로 정렬했으므로 data[0] > data[1]이고 총 로프 수가 2)
· data[0], data[1], data[2] 의 경우 최대 중량
data[2] * 3 (내림차순으로 정렬했으므로 data[2]가 최소값이고 총 로프 수가 3)
· data[0], data[1], data[2], data[3] 의 경우 최대 중량
data[3] * 4 (내림차순으로 정렬했으므로 data[3]가 최소값이고 총 로프 수가 4)
· data[0], data[1], data[2], data[3], data[4] 의 경우 최대 중량
data[4] * 5 (내림차순으로 정렬했으므로 data[4]가 최소값이고 총 로프 수가 5)
3 위 값들을 계산해서 result 리스트에 append하고 max값 출력
- 테스트케이스
5
1
2
3
4
5
(1) data = [5, 4, 3, 2, 1]
(2) data[0] 의 경우 최대 중량은 data[0] * 1 = 5
data[0], data[1] 의 경우 최대 중량은 data[1] * 2 = 8
data[0], data[1], data[2] 의 경우 최대 중량은 data[2] * 3 = 9
data[0], data[1], data[2], data[3] 의 경우 최대 중량은 data[3] * 4 = 8
data[0], data[1], data[2], data[3], data[4] 의 경우 최대 중량은 data[4] * 5 = 5
(3) result = [5, 8, 9, 8, 5] 이고 max(result) = 9