문제는 이미 읽었다고 가정합니다
한 사람이 돈을 인출하는데 필요한(대기 포함) 시간은 앞사람이 돈을 인출하는데 필요한(대기 포함) 시간 + 자신이 인출하는데 걸리는(대기 미포함) 시간이다.
즉, 모두가 인출하는데 필요한 최소시간을 구하려면, 각 사람이 돈을 인출하는데 걸리는(대기 미포함) 시간이 적은 사람부터 인출해야 한다.
#include <iostream>
using namespace std;
int n, arr[1005], brr[1005], ans;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
}
sort(arr+1, arr+n+1);
for(int i=1;i<=n;i++)
{
brr[i]=brr[i-1]+arr[i];
ans+=brr[i];
}
cout<<ans;
return 0;
}