그리디를 사용하는 문제이다.
시간에 대해 오름차순 정렬 후 누적합을 계산해주면 된다.
#include <stdio.h>
#include <algorithm>
using namespace std;
int n;
int time[1000];
int main(void)
{
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &time[i]);
}
sort(time, time + n);
int bef = time[0];
int res = bef;
for (int i = 1; i < n; i++)
{
time[i] += bef;
bef = time[i];
res += bef;
}
printf("%d\n", res);
return 0;
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 2448] 별 찍기 - 11 (0) | 2020.12.29 |
---|---|
[백준 5567] 결혼식 (0) | 2020.12.29 |
[백준 5545] 최고의 피자 (0) | 2020.12.29 |
[백준 1477] 휴게소 세우기 (0) | 2020.12.28 |
[백준 19640] 화장실의 규칙 (0) | 2020.12.28 |
댓글