고통은 사라지고 결과는 남는다. Records of Chansolve

백준 Python ATM 11399번 본문

Algorithms

백준 Python ATM 11399번

엄청큰노란닭 2023. 2. 22. 10:02

백준 Python ATM 11399번

 

11399번: ATM

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

www.acmicpc.net

 

목적은 "각 손님의 대기 시간의 총합을 최대한 줄이는 것"

 

주어진 input에 오름차순으로 정렬한 뒤 합을 구해주면 최솟값이 나온다.

 

최종 코드이다. 주석처리를 해놓았기 때문에 참고하기가 쉬울 것이다.


  
import sys
input = sys.stdin.readline
n = int(input())
p = list(map(int, input().split()))
cnt = 0
p.sort() # 오름차순 정렬
# print(p) [1, 2, 3, 3, 4]
for i in range(n):
for j in range(i+1):
cnt += p[j]
# print(j)
# 0
# 0 1
# 0 1 2
# 0 1 2 3
# 0 1 2 3 4
# print(p[j])
# 1
# 1 2
# 1 2 3
# 1 2 3 3
# 1 2 3 3 4
# sum = 32
print(cnt)

 

Comments