2217 : 로프

서희찬·2021년 9월 23일
0

백준

목록 보기
42/105

문제

코드

#2217 : 로프 
num = int(input())
arr=[0]*num 
for i in range(num):
    arr[i]=int(input()) 


#arr 정렬 
arr.sort(reverse=True) #내림차순 
for i in range(num):
    arr[i] = arr[i]*(i+1)

print(max(arr))

해설

처음에 단순히... 접근했다가 틀렸다.
어떻게 접근했냐면.. 그냥 배열을 입력받고 제일 작은값에 num을 곱하는게 최댓값이라고 생각했다..

왜! 백준예시 빵빵하게 안주냥 !!

그러고 뭐가 문제지 생각해보니 예를 들어
100 90 10 이 들어오게 된다면
최대 중량은 순서대로 100x1 90x2 10x3
즉 100 180 30 임으로
무.조.건 제일 작은값에 num을 곱하는 단순한게 아니였다

그래서 생각한 해결법은 이렇게 입력받고 정렬을 해준 후에 사용할 로프갯수만큼 곱해주는것을 배열에 저장해서 최댓값을 출력하는것이다 !!

그래서 풀었당
진짜 파이썬은 편한거같당 .. .
sort에 max에..모두 제공해주니.. 댑악

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글