it

[파이썬] 백준 11399번 ATM

두두100 2022. 3. 20. 20:56

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

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

한 번에 풀려서 너무 기분좋은 문제~

n=int(input())
A=list(map(int,input().split()))
A.sort()
B=[0]*int(len(A))

for i in range(len(A)):
    if i==0:
        B[i]=A[i]
    else:
        B[i]=B[i-1]+A[i]

print(sum(B))

결국 각자의 시간을 합해서 가장 최소의 시간을 원한다는 것은->첫사람일수록 시간이 짧아야하고, 마지막 사람일수록 긴 시간을 할당해야한다.

 

따라서 A.sort()로 리스트 안의 원소들을 크기 순서로 정렬해서 해결하였다.