코딩테스트 대비/BOJ

[Baekjoon/Python] 11399번: ATM - 효과는 굉장했다!

bluetag_boy 2021. 11. 14. 03:51
반응형
 

11399번: ATM

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

www.acmicpc.net

알고리즘 분류

  • 그리디 알고리즘
  • 정렬

 

SOLUTION

import sys

N = int(sys.stdin.readline())
p = list(map(int, sys.stdin.readline().split()))
p.sort() # 시간의 합의 최솟값을 출력해야하므로 정렬

sum = 0
cnt = N

for i in range(N):
    sum += p[i] * cnt #첫번째 사람은 총인원수 만큼 더해지고 두번째 사람은 총인원수-1 만큼 더해지는 형식
    cnt -= 1

print(sum)