고통은 사라지고 결과는 남는다. 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