ALGORITHM/프로그래머스 | 백준 | 삼성 | 카카오

[백준] 11399번 ATM

SZCODE 2021. 1. 5. 13:02

www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

문제 풀이 : 

각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구할 떄 중요한 점은 대기 시간의 합입니다.

최소로 하기 위해 먼저 걸리는 시간을 정렬해줍니다.

정렬한 후 대기시간을 더해주면 됩니다.

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[] P = new int[N];
		int sum = 0, answer = 0;
		
		for (int i = 0; i < P.length; i++) {
			P[i] = sc.nextInt();
		}
		
		Arrays.sort(P);
		
		for (int i = 0; i < P.length; i++) {
			sum += P[i];
			answer += sum;
		}
		System.out.println(answer);
	}
}