백준

백준 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);
  }
}