문제
입력한 숫자를 나열하여 최소 시간 찾기
문제 링크: 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);
}
}