백준11399(파이썬) - ATM

resilient

·

2021. 7. 1. 14:29

728x90
반응형

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

 

11399번: ATM

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

www.acmicpc.net

  • 이 문제를 읽고 처음 든 생각은 DP로 풀어야지 였다.
  • Bottom-up 방식을 사용해서 i번째 DP테이블 값을 구할 때, i-1번째의 DP 값과 i번째의 data값을 더해서 DP[i]번째 값을 넣어주었다.
  • 비교적 간단한 DP문제라 푸는데 시간이 많이 걸리지는 않았다.
import sys
input = sys.stdin.readline

n = int(input())
data = list(map(int,input().split()))
dp = [0]*n
data.sort()
dp[0] = data[0]
for i in range(1,n):
    dp[i] = dp[i-1]+data[i]
print(sum(dp))
반응형