코딩테스트/백준

[Dev-Ping9] 백준 11399번 - ATM (Java)

DevPing9_ 2022. 1. 9. 23:01

 

 

# 문제 설명

 모든사람이 기다리는 시간의 합을 최소화 하는 문제이다.

 종료시간이 짧은 순대로 정렬하면 끝나는 문제이다.....

 

 

# 코드 구현

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;

public class Main{
    static int[] waitingTime;
    static int[] sum;

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringTokenizer st;
        waitingTime = new int[n];
        sum = new int[n];

        st = new StringTokenizer(br.readLine(), " ");
        for(int i=0; i<n; i++){
            waitingTime[i]=Integer.parseInt(st.nextToken());
        }

        Arrays.sort(waitingTime);

        sum[0] = waitingTime[0];
        int ans = sum[0];
        for(int i=1; i<n; i++){
            sum[i]+= sum[i-1]+waitingTime[i];
            ans+=sum[i];
        }

        System.out.println(ans);   
    }
}

 

728x90