문제: https://www.acmicpc.net/problem/11399
해당 문제는 별다른 어려움 없이, 지문에 정답이 나와있어 그대로 구현해 주었다.
소요시간이 제일 적은 사람 순으로 돈을 인출하는 시간을 정렬한 뒤, 각 자리에 사람이 인출하기까지 걸리는 시간을 구해 준 뒤 더하면 된다.
답을 구하는 과정에서 모든 사람이 인출하는데 걸린 총 소요시간의 합과 각 사람이 인출하는데 걸린 시간을 따로 변수에 담아주어 반복문 한번에 끝내도록 구현했다.
import sys
input = sys.stdin.readline
N = int(input())
P = list(map(int, input().split()))
P.sort()
answer = 0
pre = 0
for i in range(N):
# i번째 사람이 지금까지 기다린 시간
wait = pre + P[i]
# 지금까지 기다린 사람들의 총 시간합
answer += wait
# 이전 사람이 기다린 시간
pre += P[i]
print(answer)