728x90
https://www.acmicpc.net/problem/2217
✔️ 문제 분석
그리디, 정렬을 이용하여 출력
k개의 로프를 사용하여 중량이 w인 물체를 들어올릴때 w/k만큼 중량이 걸리게 된다 이때 물체의 최대 중량
ex)
2
10
15
n = 2이고 rope=[10,15] 일때 10과 15의 무게를 버틸수 있는 2개의 rope는 10이 최대로 버틸 수 있는 무게이므로 20의 무게가 최대의 무게가 됨
❗ 코드 분석
첫줄에는 로프의 수: n
두번째 ~ n+1번째 줄 까지는 각 로프가 들 수 있는 최대의 무게: k
n 입력
rope 리스트로 입력
rope 내림차순으로 정렬
sort()로 정렬 후 정렬된 중앙 값을 차례로 확인후 (현재의 중량 * 이후 남은 중량 갯수 값)이 answer보다 크면 answer 값 갱신하여 출력
💫 코드
n = int(input())
rope = []
for _ in range(n):
rope.append(int(input()))
rope.sort()
answer = 0
for i in range(n):
answer = max(answer, rope[i] * (n-i))
print(answer)
'Python > 백준' 카테고리의 다른 글
#14 [python] 11399번: ATM (0) | 2023.10.21 |
---|---|
#13 [python] 1026번: 보물 (0) | 2023.10.21 |
#11 [python] 1931번: 회의실 배정 (0) | 2023.10.19 |
#10 [python] 11047번 동전 0 (0) | 2023.10.18 |
#9 [python] 백준 10156번: 과자 (0) | 2023.10.17 |