✏️ 문제
문제 파악
로프가 버틸 수 있는 중량을 내림차순으로 정렬하면
뒤에 있는 중량은 앞에 있는 중량까지 들 수 없으므로 뒤에 있는 중량을 기준으로 최대 중량을 계산하게 된다.
예제1과 같은 경우 로프가 2개가 있는데 각각 최대 10, 15 중량을 버틸 수 있다.
로프 1개만 사용한다면 최대 15만 버틸 수 있는데
로프 2개를 사용한다면 각각 10, 10(최대 15를 들 수 있는 로프를 10까지만 사용하게 됨)으로 최대 20을 버틸 수 있게 된다.
알고리즘
- 수학
- 그리디 알고리즘
- 정렬
코드
N = int(input())
m = []
for i in range(N):
m.append(int(input()))
m.sort(reverse=True)
result = []
for j in range(N):
result.append(m[j]*(j+1)) # 15*1, 10*2
print(max(result))
'PS > 백준' 카테고리의 다른 글
[Python] 1931번 회의실 배정 (0) | 2024.07.14 |
---|---|
[Python] 1541번 잃어버린 괄호 (0) | 2024.07.14 |
[Python] 1789번 수들의 합 (0) | 2024.07.14 |
[Python] 10988번 팰린드롬인지 확인하기 (0) | 2024.04.21 |
[Python] 2444번 별 찍기 - 7 (0) | 2024.04.21 |