https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
이 문제는 DP를 통해 해결할 수 있다.
DP를 통해 누적합을 계산하고 출력할 변수에 누적합을 누적하면 된다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int N;
int dp[1001];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> N;
vector<int> v;
for (int i = 0; i < N; i++) {
int value;
cin >> value;
v.push_back(value);
}
sort(v.begin(), v.end());
dp[0] = v[0];
int result = dp[0];
for (int i = 1; i < N; i++) {
dp[i] = v[i] + dp[i - 1];
result += dp[i];
}
cout << result << '\n';
}'Baekjoon Review' 카테고리의 다른 글
| [Gold 5] 2212번 센서 (0) | 2023.11.27 |
|---|---|
| [Silver 3] 11659번 구간 합 구하기 4 (0) | 2023.11.27 |
| [Silver I] 1931번 회의실 배정 (2) | 2023.11.27 |
| [Silver 2] 1927번 최소 힙 (0) | 2023.11.27 |
| [Gold 4] 1043번 거짓말 (0) | 2023.11.27 |