알고리즘 공부/백준

(Python)백준 코딩테스트 연습 - 로프(2217)

HRuler 2023. 1. 15. 14:58

1. 문제

https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net

2. 풀이

import sys
input = sys.stdin.readline

# n : 줄의 개수
n = int(input())

# n_l : 줄 리스트
n_l = [int(input()) for i in range(n)]

n_l.sort()
# max_w : 최대 중량
max_w = 0
for i, v in enumerate(n_l):
#     print(v * (n-i))
    max_w = max(max_w, v * (n-i))
print(max_w)

3. 후기

 - 로프 문제는 입력받은 줄의 중량들을 정렬하여 그 길이보다 큰 길이는 해당 중량을 다 버티므로 자신보다 큰 중량을 버티는 줄 수를 모두 곱하는 방식으로 해결했다. 실버4의 문제는 어느 정도 난이도가 있을거라 생각했는데 해당 문제는 쉬운 편이였던것 같다.