• 생각

 

ATM의 모든 사람의 대기시간의 합을 구하는 문제이다.

앞에사람의 작업시간이 길어질 수록 총 대기시간이 길어지니 오름차순 정렬을 통해 대기시간을 최소로 해줘야한다.

 

  • 코드

정답 코드 : arrays.sort를 통해 오름차순 정렬을 해준 뒤, 총 대기시간을 구해주었다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
	static int N;
	static int[] array;

	public static void main(String[] args) throws Exception {
		SetData();
		System.out.println(ReturnWaitingTime());
	}

	private static void SetData() throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		array = new int[N];	
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		for(int i = 0; i < N; i++)
			array[i] = Integer.parseInt(st.nextToken());
		
		// 오름차순 정렬
		Arrays.sort(array);
	}
	
    private static int ReturnWaitingTime()
    {
    	int sum = 0;
				
		for(int i = 0; i < N; i++) {
			sum += array[i] * (N - i);
		}
    	
        return sum;
    }
}

+ Recent posts