문제 출처
https://www.acmicpc.net/problem/11399
접근 방식 및 풀이
- Greedy 알고리즘의 전형적인 문제
- 문제에서도 나왔지만 힌트는 정렬이다. 오름차순으로 정리하여 누적값을 새로운 배열에 넣는다.
- 새로운 배열에 있는 값의 합이 ATM의 최소값이다.
소스 코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i <n ; i++) {
arr[i] =sc.nextInt();
}
Arrays.sort(arr);
int[] result = new int[n];
result[0] = arr[0];
for (int i = 1; i <n ; i++) {
int tmp =arr[0];
for (int j = 1; j <=i ; j++) {
tmp += arr[j];
}
result[i] = tmp;
}
int sum =0;
for (int i = 0; i <n ; i++) {
sum += result[i];
}
System.out.println(sum);
}
}
결과
'Competition > Baekjoon' 카테고리의 다른 글
[백준] 1476번 자바 날짜계산 (0) | 2020.04.16 |
---|---|
[백준] 10610번 자바 30 (0) | 2020.04.08 |
[백준] 11047번 자바 동전 0 (0) | 2020.04.08 |