BaekJoon2217_로프

최효준·2023년 3월 10일
0

알고리즘 문제풀이

목록 보기
49/61

문제

풀이

간단한 그리디 문제이다.
로프들을 하나씩 추가해 나가면서 들 수 있는 중량의 값을 갱신해나가면 되는데 w 중량의 물체를 k개의 로프로 들어올릴때 각 로프가 감당하는 무게는 w/k라는 점을 생각해서 코드를 작성하면 된다.

풀이코드

import sys
input = sys.stdin.readline

n = int(input())
ropes = []

for _ in range(n):
    ropes.append(int(input()))
ropes.sort(reverse=True)

weight = 0
tot = 0

for rope in ropes:
    tot += 1
    if weight == 0:
        weight = rope
    else:
        weight += rope
        if weight/tot > rope:
            weight -= rope
            if rope*tot >= weight:
                weight = rope*tot    
print(weight)
profile
Not to be Number One, but to be Only One

0개의 댓글