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);
	}
}
'ALGORITHM > 프로그래머스 | 백준 | 삼성 | 카카오' 카테고리의 다른 글
| [백준] 1931 회의실 배정 (0) | 2021.01.06 | 
|---|---|
| [백준] 11047 동전0 (0) | 2021.01.06 | 
| [프로그래머스] 모의고사 (0) | 2020.12.11 | 
| [백준] 4949번 균형잡힌 세상 (0) | 2020.11.10 | 
| [프로그래머스] 2018 KAKAO BLIND RECRUITMENT 캐시 (0) | 2020.11.09 |