풀이
- 처음에 해당 문제를 이해하지 못했다.
- 역시 알고리즘은 잘 읽고 이해하는 것이 중요하다는 것을 새삼 느끼게 되었음...
- 해당 문제는 여러 로프가 있고 해당 로프가 버틸 수 있는 최대 중량이 있는데
- 예를 들어
- 아래 예시처럼
- 2개의 로프가 주어지며 해당 로프는 [10,15] 의 무게를 버틸 수 있는 최대 중량이 있다고 하자.
- 그렇다면 1개의 로프만 주어질 경우 가질 수 있는 최대 중량은
- 10보단 15가 더 크기에 15가 최대 중량이 될 테고
- 2개의 로프가 주어질 경우엔
- 10과 15가 모두 버틸 수 있는 중량인 10이 2개인 20이 결과 값이 될 테니까
- 1개의 로프인 10보다 2개의 로프의 값인 20이 더 크기에 20을 최대 중량으로 볼 수 있다.
- 위의 방법으로 해당 문제를 해결
import sys
input = sys.stdin.readline
n = int(input())
li = sorted([int(input()) for _ in range(n)], reverse=True)
result, cnt = 0, 1
for i in range(n):
if li[i]*cnt > result: result = li[i]*cnt
cnt += 1
print(result)
'알고리즘' 카테고리의 다른 글
[백준, 파이썬, 12871번] 무한 문자열 (0) | 2023.08.31 |
---|---|
[백준, 파이썬, 17266번] 어두운 굴다리 (0) | 2023.08.30 |
[백준, 파이썬, 1764번] 듣보잡 (0) | 2023.08.29 |
[백준, 파이썬, 1026번] 보물 (0) | 2023.08.29 |
[백준, 파이썬, 1931번] 회의실 배정 (0) | 2023.08.28 |