총 대기 시간은 누적된 대기 시간이 작을수록 작아집니다.
걸리는 시간 | 3 | 1 | 4 | 3 | 2 |
시간의 합 | 3 | 4 | 8 | 11 | 13 |
3 + 4 + 8 + 11 + 13 = 39분
걸리는 시간 | 1 | 2 | 3 | 3 | 4 |
시간의 합 | 1 | 3 | 6 | 9 | 13 |
1 + 3 + 6 + 9 + 13 = 32분
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(void)
{
int n; cin >> n;
vector<int> p(n);
for (int i = 0; i < n; i++) {
cin >> p[i];
}
sort(p.begin(), p.end());
int sum = p[0];
for (int i = 1; i < n; i++) {
p[i] = p[i] + p[i - 1];
sum += p[i];
}
cout << sum;
return 0;
}
대기 시간을 오름차순으로 정렬하는 것만으로도 간단히 해결되는 문제입니다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준/C,C++] 13305번: 주유소 (0) | 2021.03.14 |
---|---|
[백준/C,C++] 1541번: 잃어버린 괄호 (0) | 2021.03.14 |
[백준/C,C++] 11047번: 동전 0 (0) | 2021.03.12 |
[백준/C,C++] 12865번: 평범한 배낭 (0) | 2021.03.08 |
[백준/C,C++] 1912번: 연속합 (0) | 2021.03.08 |
댓글