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
Carnegie Mellon University Robotics Institute | Research Associate | Developing For Our Lives, 세상에 기여하는 삶을 살고자 개발하고 있습니다

0개의 댓글

관련 채용 정보