본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#100 백준 파이썬 [2217] 로프 - 그리디 알고리즘

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)