알고리즘/백준

[파이썬] BOJ_11399(ATM)

딱따구르리 2021. 2. 16. 13:16
728x90
반응형

문제

 

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

 

11399번: ATM

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

www.acmicpc.net


 

해설

 

이 문제는 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구해야 하는 문제이다.

 

앞 사람의 시간이 계속해서 더해져 나가기 때문에

앞 사람이 가장 적은 시간만을 사용해야 전체 시간의 합이 최소가 될 것이다.

 

푸는 방법은 다양하겠지만,

나는 오름차순 정렬을 이용해 풀었다.

정렬 후에는 이중 for문을 이용한다면 쉽게 풀 수 있다.


코드

 

-파이썬

#백준 11399(ATM)

n = int(input())  #사람 수
time = list(map(int, input().split()))  #인출하는데 걸리는 시간

time.sort()

res = 0
for i in range(n):
    for j in range(i + 1):
        res += time[j]

print(res)
728x90
반응형