본문 바로가기
알고리즘 문제

백준 16208

by hyunjing0 2021. 3. 22.
n = int(input())
iron_rod = sorted(list(map(int, input().split())))
sum_iron_rod = sum(iron_rod)
count = 0

for i in iron_rod:
    sum_iron_rod -= i
    count += i * sum_iron_rod

print(count)

 

비용이 최소가 되려면 곱하는 수가 작아야 한다.

 

 

예를 들어 4개 막대기의 크기가 3, 5, 4, 2 므로 (3+5+4) * 2 라는 식이 나와야 한다는 뜻이다.

2를 잘라버리고 나서는 ( 코드에서 sum_iron_rod 에서 버림 )

3이 가장 작기때문에 (5+4) * 3 이라는 식이 나와야 최소가 된다.

 

'알고리즘 문제' 카테고리의 다른 글

백준 11047 파이썬  (0) 2021.03.25
백준 1931  (0) 2021.03.24
백준 16435  (0) 2021.03.22
백준 11399  (0) 2021.03.15
백준 20044  (0) 2021.03.13