[백준(Baekjoon)][자바(java)] 11399 : ATM / 그리디 알고리즘

728x90

https://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(), t = 0, sum_t = 0;
		int p[] = new int[n];
		for( int i = 0; i < n; i++ )
			p[i] = sc.nextInt();

		Arrays.sort( p );

		for( int i = 0; i < n; i++ ) {
			t += p[i];
			p[i] = t;
			sum_t += p[i];
		}

		System.out.println( sum_t );

		sc.close();
	}

}

 

바로 전 문제와 마찬가지로 정렬만 잘해주면 쉽게 풀 수 있음

시간이 덜 걸리는 순으로 정렬하면 기다리는 시간이 최소가 됨

 

반응형