sm 기술 블로그
148. 11399(ATM) - 파이썬 본문
import sys
input = sys.stdin.readline
N = int(input())
P = sorted(list(map(int, input().split())))
tmp = 0
for i in range(N):
tmp += P[i]
P[i] = tmp
print(sum(P))
문제요약
N명의 사람이 ATM에서 돈을 뽑을 때 가장 적게 드는 방법은?
설명
각 사람이 P시간이 걸린다.
시간을 오름차순으로 정렬하면 필요한 시간의 합의 최소값을 구할 수 있다.
P = sorted(list(map(int, input().split())))
따라서 먼저 받은 값을 오름차순으로 정렬한다.
for i in range(N):
tmp += P[i]
P[i] = tmp
누적합을 저장해준다.
print(sum(P))
배열의 모든 값을 더해주면 답을 구할 수 있다.
'문제 > 백준_파이썬' 카테고리의 다른 글
150. 13305(주유소) - 파이썬 (0) | 2022.07.19 |
---|---|
149. 1541(잃어버린 괄호) - 파이썬 (0) | 2022.07.18 |
147. 1931(회의실 배정) - 파이썬 (0) | 2022.07.17 |
146. 11047(동전 0) - 파이썬 (0) | 2022.07.17 |
145. 11660(구간 합 구하기 5) - 파이썬 (0) | 2022.07.16 |
Comments