파이썬

[백준]2217번-파이썬

이경찬 :) 2022. 2. 16. 14:15

문제링크:2217번: 로프 (acmicpc.net)

 

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