[백준] no11399: ATM

문제

입력한 숫자를 나열하여 최소 시간 찾기

문제 링크: https://www.acmicpc.net/problem/11399


원칙

첫 번째

초 * N-1

세 번째 * N-2

Nte * 1

모두의 최소 합계를 찾으십시오.


솔루션 방법

1. 입력을 ArrayList로 받습니다.

2. ArrayList 정렬

3. ArrayList 크기만큼 반복,

1. * 배열목록.크기()

+ 2. * (ArrayList.size() -1)

+ N번째 * 1

합계 후 출력


내 코드

import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main {

    public static void main(String() args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int T = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        ArrayList<Integer> list = new ArrayList<>();
        for(int i=0; i<T ; i++) list.add(Integer.parseInt(st.nextToken()));
        
        Collections.sort(list);

        int time = 0;
        int num = 0;
        for(int i = list.size(); i>0 ; i--) {
            time += (list.get(num) * i);
            num++;
        }

        System.out.println(time);
    }
}