https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
그리디 알고리즘은 무조건 왜 그리디로 풀어야 하는지를
생각하고 움직여야한다
오름차순으로 만들면 된다
왜??? 최솟값을 구하는 문제이기 때문
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a.begin(), a.end());
int sum = 0;
int ans = 0;
for (int i = 0; i < n; i++)
{
sum += a[i];
ans += sum;
}
cout << ans << '\n';
return 0;
}
|
cs |