백준
백준 11399 ATM(Java)
Park DJ
2023. 1. 25. 02:07
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
해석 및 팁
이 문제는 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구해야 합니다. 먼저 값을 입력받은후 내림차순으로 정렬한 후에 다시 반복문을 통해 누적시간을 배열에 입력합니다. 마지막으로 모든 값들의 합을 출력하면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sum = 0;
int n = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
for(int i = 1; i < n; i++) {
arr[i] += arr[i-1]; //n번째 사람이 걸리는시간 = 1+2+...n-1번째의 합
}
for(int i = 0; i < n; i++) {
sum += arr[i];
}
System.out.println(sum);
}
}