백준|2217번|로프

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
60/136

문제설명
로프들이 버틸수 있는 무게를 입력받고 로프들을 조합하여 들어올릴 수 있는 최대 무게를 구하는 문제입니다.(모든 로프를 사용하지 않아도 되고, 로프를 여러개 사용하면 각 로프에는 w/k의 무게가 걸립니다.)

작동 순서
1. 각 무게들을 입력받고 배열에 저장합니다.
2. 무게들을 역순으로 정렬합니다.
3. 현재 무게 X 현재까지의 로프의 개수를 통해 현재 조합으로 들 수 있는 무게를 구합니다.
4. 현재 조합으로 들 수 있는 무게가 지금까지의 최대 무게보다 큰 경우 최대 무게로 저장합니다.
5. 계산이 끝나면 최대 무게를 출력합니다.

소스코드

import sys
inp = sys.stdin.readline
N = int(inp())
rope = []
weight = 0
max_weight = 0
for i in range(N):
    rope.append(int(inp()))
rope.sort(reverse=True)
for i in range(N):
    weight = rope[i]*(i+1)
    if max_weight <= weight:
        max_weight = weight
print(max_weight)
profile
INTP 개발자 지망생

0개의 댓글