package backjun.I그리디;
import java.util.Scanner;
import java.util.Arrays;
public class ATM {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++){
arr[i] = sc.nextInt();
}
sc.close();
Arrays.sort(arr);
for(int i=1; i<n;i++){
arr[i] += arr[i-1];
}
System.out.println(Arrays.stream(arr).sum());
}
}
그리디 알고리즘으로 해결한 문제
앞사람이 ATM을 사용하면 뒷 사람은 앞 사람이 사용한 만큼 기다려야한다. 즉 시간이 추가된다. 추가되는 시간을 최소로 하기 위해서는 오름차순으로 정렬해 주어야한다.
오름차순으로 정렬 후 누적 시간까지 다 더해주면 답을 구할 수 있다.