J2KB 3기 서브젝트 9주차 (1) 로프

새벽하늘·2021년 6월 2일
1

BOJ

목록 보기
4/4

참고사이트: 츄르 사려고 코딩하는 집사

❓문제

🤔 풀기 전

예제를 보고 입력값을 배열 하나에 저장해, 최소값을 구해 N만큼 곱해주면 되겠다고 생각
--> 100, 10, 80 의 예제의 경우 작성자의 논리로면 100이 최대지만 실제로는 160까지 가능
--> 우선 100, 80, 10 으로 정렬하고 각 1부터 곱해서 새로 저장
---> 100, 160, 30
여기서 최대값이 버틸수 있는 최대 무게

❓ 왜 자리수만큼 곱하는가

문제 조건에 w / k 만큼 균일한 힘을 버틴다고 말했다.
100 + 80 이 견딜 수 있는게 아니라 100에서 80, 80에서 80을 버틸 수 있기 때문에 160 인 것!

🙋🏻‍♀️ 내 코드

import sys
input = sys.stdin.readline

N = int(input())
ropes = []
answer = []
for _ in range(N):
    ropes.append(int(input()))
ropes.sort(reverse=True)

for i in range(N):
    answer.append(ropes[i]*(i+1))

print(max(answer))
profile
만들고 싶은 거 다 만들 수 있는 그날까지

0개의 댓글