본문 바로가기
백준 알고리즘(BOJ)

백준 알고리즘 11399 (ATM) - python

by Think_why 2022. 6. 30.

백준 알고리즘 11399(ATM) - python

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

 

11399번: ATM

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

www.acmicpc.net

 

전형적인 그리디 알고리즘, 누적 문제

 

[문제 풀이]

1. 뒤로 갈수록 누적이 되기 때문에 작은 순서대로 정렬

2. i번째의 수는 누적될 때 (N-i)번 누적되는 알고리즘

3. 누적 후 출력

 

import sys
N = int(sys.stdin.readline())
people = list(map(int, sys.stdin.readline().split()))
people.sort()  # 빠른 순으로 정렬
_sum = 0
for i in range(N):
    # 누적 알고리즘
    _sum += (people[i] * (N - i))
print(_sum)
728x90

댓글