문제에서 예시로 든 상황에서 알 수 있듯이 모든 사람이 돈을 인출하는데에 최소한의 시간이 들기 위해서는 시간이 적게 드는 사람이 먼저 돈을 인출해 가는 방식으로 풀어야 한다는 것을 알 수 있고, 따라서 시간이 적게 드는 사람이 앞에 있도록 오름차순으로 정렬하면 된다. 문제에서 N의 범위는 1,000이하이므로 O(n^2)으로도 가능함을 추가로 알 수 있다. (1초 == 약 2천만번의 연산)
따라서 해당 문제는 O(nlogn)을 가지는 sort()함수로 해결하면 다음과 같다.
# ATM
import sys
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split()))
sumArr = [0]*(N+1)
arr.sort()
for i in range(1, N + 1):
sumArr[i] = sumArr[i-1] + arr[i - 1]
print(sum(sumArr))