문제
줄을 서 있는 사람의 수 N과 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어졌을 때, 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
출력
첫째 줄에 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 출력한다.
1 = 1
1+2 =3
1+2+3 =6
1+2+3+3 =9
1+2+3+3+4 =13
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cnt = 0;
int arr[] = new int[n];
for(int i=0; i<n; i++) {
arr[i]= sc.nextInt();
}
Arrays.sort(arr);
for(int i = 0; i<arr.length; i++) {
for(int j =0; j<=i; j++) {
cnt = cnt + arr[j];
}
}
System.out.println(cnt);
}
}
import java.util.Arrays;
import java.util.Scanner;
public class Main {
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();
}
Arrays.sort(arr);
int cnt = 0; // 각 사람이 돈을 인출하는데 걸린 시간
int sum = 0;// 누적된 시간
for(int i = 0; i<arr.length; i++) {
sum += cnt + arr[i];
cnt += arr[i];
}
System.out.println(sum);
}
}