백준파이썬 11399 ATM


문제

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

11399: ATM

첫 번째 줄은 사람들의 수 N(1 ≤ N ≤ 1,000)을 제공합니다.
두 번째 줄은 각 사람이 돈을 인출하는 시간 Pi를 제공합니다.
(1 ≤ 파이 ≤ 1,000)

www.acmicpc.net

솔루션

출금시간이 가장 짧은 사람에게 출금할 때,

각 사람이 돈을 인출하는 데 걸리는 시간의 합의 최소값을 찾을 수 있습니다!
즉, 욕심쟁이 문제~

라인 정렬,

각 사람이 돈을 인출하는 데 걸리는 시간은 (줄의 처음에 있는 사람부터 지금 사람까지의 시간의 합)이므로

합계에 누적하여 추가됩니다.

import sys
input = sys.stdin.readline

n = int(input())
line = list(map(int, input().split()))

line.sort()

answer = 0
for i in range(n):
    answer += sum(line(:i+1))

print(answer)