[백준] 2217번 로프 ★

거북이·2023년 1월 11일
0

백준[실버4]

목록 보기
18/91
post-thumbnail

💡문제접근

  • 모든 로프를 사용해야 할 필요는 없으며 임의로 몇 개의 로프를 골라서 로프들을 이용하여 들어올릴 수 있는 물체의 최대 중량을 구하는 문제다.

테스트케이스의 예제를 설명하면 다음과 같다.

  • 2개의 로프가 주어져있고 각 로프가 들어올릴 수 있는 물체의 최대 중량은 각각 10kg, 15kg이다.
  • 10kg를 견딜 수 있는 로프를 사용하면 들어올릴 수 있는 물체의 최대 중량 = 10kg
  • 15kg를 견딜 수 있는 로프를 사용하면 들어올릴 수 있는 물체의 최대 중량 = 15kg
  • 10kg, 15kg를 둘 다 사용해서 들어올릴 수 있는 물체의 최대 중량 = 10kg + 10kg = 20kg
  • 각 로프가 들어올릴 수 있는 물체의 최대 중량을 오름차순으로 정렬하여 답을 구하는 코드를 작성했다.

💡코드(메모리 : 34712KB, 시간 : 116ms)

import sys

N = int(input())
rope = []
for i in range(N):
    rope.append(int(sys.stdin.readline().strip()))

rope.sort()
maximum_weight = 0
total_weight = 0
K = len(rope)
for i in range(len(rope)):
    total_weight += K * rope[i]
    if total_weight > maximum_weight:
        maximum_weight = total_weight
    total_weight = 0
    K -= 1
print(maximum_weight)

💡소요시간 : 4m

0개의 댓글