https://www.acmicpc.net/problem/2217
#Solution
그리디 알고리즘을 이용한 풀이이다. 시간초과가 나오지 않을까 걱정했지만 다행히도 아래 풀이법으로 정답을 맞췄다. 내림차순으로 로프를 정렬한 뒤 (n번째 큰 수) * n 이 최대값이 되는 수를 찾는 방법이다. 단순하다.
rope_num = int(input())
rope_list = []
answer = 0
for _ in range(rope_num):
rope_list.append(int(input()))
rope_list.sort(reverse = True)
for i in range(rope_num):
if answer < rope_list[i] * (i + 1):
answer = rope_list[i] * (i + 1)
print(answer)
'Programming [Python] > 백준 알고리즘 솔루션' 카테고리의 다른 글
#102 백준 파이썬 [10814] 나이순 정렬 (0) | 2019.09.24 |
---|---|
#101 백준 파이썬 [1181] 단어 정렬 (0) | 2019.09.24 |
#99 백준 파이썬 [2447] 별 찍기 - 10 (0) | 2019.09.24 |
#98 백준 파이썬 [1904] 01타일 - 점화식 (0) | 2019.09.23 |
#97 백준 파이썬 [6064] 카잉 달력 (0) | 2019.09.23 |