백준
[백준] 11399 ATM - Python
whereisco
2023. 5. 24. 23:02
문제
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
위 문제는 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구해주어야 합니다.
이는 곧 각 사람의 (대기 시간 + 인출 시간)이 짧아야 함을 의미합니다.
따라서 인출 시간이 짧은 사람들이 순차적으로 나열되도록 오름차순 정렬해줍니다.
이 후, 각 사람이 돈을 인출하는데 걸리는 시간과 대기시간을 더해줌으로써 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구해줄 수 있습니다.
Python
#ATM
n = int(input())
times = list(map(int, input().split()))
times.sort()
for i in range(1, len(times)):
times[i] = times[i-1] + times[i]
print(sum(times))