문제풀이) 백준 - 2217 / 로프
문제 요약
1. 들어올릴 수 있는 최대 중량을 구하라.
2. 로프는 들어올릴 수 있는 중량이 정해져있으며 k개의 로프를 병렬로 연결하여 중량이 w인 물체를 들어 올릴 때
각 로프엔 w/k의 중량이 걸리게 된다.
4. 로프는 모두 사용하지 않아도 되며, 임의로 정해 사용해도 된다.
어떻게 풀어야 할까?
k개의 로프를 1 ~ k개를 사용하는 경우 모두를 체크해야한다.
-> 내림차순 정렬을 하고 차례대로 값을 비교해보자
코드
n = int(input())
lopes = sorted([int(input()) for _ in range(n)], reverse=True)
maxweight = lopes[0]
for i in range(len(lopes)):
if maxweight < lopes[i] * (i + 1):
maxweight = lopes[i] * (i + 1)
print(maxweight)
코드 풀이
line 5. 내림차순이기 때문에 항상 iopes[i]값이 최소 중량이 된다.
따라서 lopes[idx] * (i + 1)를 통해 현재 최대 중량 값을 알 수 있고, 비교연산을 통해 최대 중량을 구할 수 있다.
Author And Source
이 문제에 관하여(문제풀이) 백준 - 2217 / 로프), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wjdcksdud29/문제풀이-백준-2217-로프저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)