백준 문제풀이
2217번: 로프 / silver 4 / 그리디, 정렬
RonLee
2023. 3. 24. 18:54
https://www.acmicpc.net/problem/2217
2217번: 로프
N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하
www.acmicpc.net
'''
2217번: 로프 / silver 4 / 그리디, 정렬
'''
import sys
input = sys.stdin.readline
# 1. 입력 받기
n = int(input())
rope = []
for _ in range(n):
rope.append(int(input()))
# 2. 로프 리스트 오름차순 하기
rope.sort(reverse=True)
# 3. 최대 중량 구하기
res_weight = 0
for i in range(len(rope)):
rope_cnt = i + 1
if res_weight < rope[i] * rope_cnt:
res_weight = rope[i] * rope_cnt
print(res_weight)
# 1. 입력 받기
# 2. 로프 리스트 오름차순 하기 (정렬)
# 3. 최대 중량 구하기 (그리디)
- 로프의 개수가 1개일 때 : (가장 큰 값 로프 값) 최대 중량
- 로프의 개수가 2개일 때 : (두번째로 큰 값 로프 값 * 2) 최대 중량
- 로프의 개수가 3개일 때 : (세번째로 큰 값 로프 값 * 3) 최대 중량
(생략..)
해당 반복문을 만들면 된다.
로프가 n개일때, 최대 중량이 될 수 있는 값들을 비교해서 가장 큰 최대 중량을 구한다!