백준 2217번 python

원래벌레·2021년 12월 31일
0

그리디 알고리즘

list=[]

n=int(input())
for i in range(n) :
    temp=int(input())
    list.append(temp)
list.sort()
MAX=list[0]*len(list)

for i in range(1,len(list)):
    value=list[i]*(len(list)-i)
    if value > MAX :
        MAX=value

print(MAX)

로프 문제의 핵심은 w의 중량을 k의 로프로 같은 하중을 받는 다는 것이다. 이 조건으로 줄 하나로 다른 모든 줄을 사용 하는 것보다 더 좋은 결과를 낼 수 있다. 예를 들어 줄이 버틸 수 있는 하중이 1 2 3 9999 라고 할때 9999를 버틸 수 있는 줄 하나를 쓰는 것이 답이된다. 그렇기 때문에 입력값을 list에 받아 정렬 한 후, 맨 앞 인덱스부터 끝 인덱스 까지 버틸 수 있는 하중을 계산하고 최대로 버틸 수 있는 하중인 값을 출력 하게 해주었다.

profile
학습한 내용을 담은 블로그 입니다.

0개의 댓글