https://www.acmicpc.net/problem/2217

 

2217번: 로프

N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하

www.acmicpc.net


문제 해결을 위한 과정

이 문제의 경우 단일 for문으로 쉽게 해결할 수 있었습니다. 먼저 입력받은 로프를 오름차순으로 정렬하는게 가장 중요합니다. 문제 어디에도 오름차순으로 입력이 된다는 말이 없기 때문에 먼저 오름차순 정렬을 해줍니다. 그 후 각 로프에 현재 로프의 개수를 곱하면서 구해지는 무계중 최대값을 구합니다. 


소스코드
n = int(input())
arr = []
for _ in range(n):
  arr.append(int(input()))
arr.sort()
ans = 0

for i in range(n):
  temp = arr[i] * (n-i)
  if ans < temp:
    ans = temp
print(ans)

+ Recent posts