알고리즘
[백준] 11399 - ATM (자바)
JH_Lucid
2021. 4. 30. 14:44

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int[] P = new int[N];
for (int i = 0; i < N; i++) {
P[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(P);
//counting Sort
// while (N-- > 0) {
// P[Integer.parseInt(st.nextToken())]++;
// }
int[] acc = new int[N];
int sum = 0;
for (int i = 0; i < N; i++) {
if ((i - 1) != -1) {
acc[i] = acc[i - 1] + P[i];
sum += acc[i];
} else {
acc[i] = P[i];
sum += acc[i];
}
}
System.out.print(sum);
}
}
- counting sort를 이용하면 더 빠르게 풀 수 있다.(시간 제한 클 경우, arrays.sort로는 어려울 수 있다.)
- 입력 받자마자 정렬하는 방식 (st-lab.tistory.com/104)