Coding Test/BaekJoon_Python
백준 11399 <ATM> Python
JunOnJuly
2023. 11. 19. 20:28
728x90
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
그리디 알고리즘으로 풀 수 있는 문제로 어떤 순서로 더했을 때 최소가 될지 생각해보면 쉬운 문제입니다.
def solution(N, data_list):
# 데이터 리스트 정렬
# 누적합 리스트 만들기 위해 0 추가
data_list = [0] + sorted(data_list)
# 누적합으로 변경
for idx in range(len(data_list)):
# 0 번 인덱스 스킵
if idx:
data_list[idx] += data_list[idx-1]
# 누적합 모두 더하기
return sum(data_list)
N = int(input())
data_list = list(map(int, input().split()))
print(solution(N, data_list))
728x90