-
11399 ATM백준/그리디 알고리즘 2021. 10. 18. 19:51
예제에 나온 값들로 생각해보면,
결국 3,1,4,3,2 중에서 1개는 5번 더해지고, 1개는 4번 더해지고, 1개는 3번 더해지고,
1개는 2번 더해지고, 1개는 1번 더해진다
그래서 제일 작은 값이 5번 더해지고, 제일 큰 값이 1번 더해지도록 해야한다.
그래서 3,1,4,3,2를 오름차순 정렬해서 아래와 같이 만들고
1 2 3 3 4 아래처럼 각 배열의 값들을 더해준다.
(1이 5번 더해지고, 4가 1번 더해진다.)
즉
가:1+2+3+3+4
나:1+2+3+3
다:1+2+3
라:1+2
마:1
한 뒤
가+나+다+라+마 를 해주면 된다.
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 sum=0; for(int k=N;k>0;k--) { for(int j=0;j<k;j++) { sum+=arr[j]; } } System.out.println(sum); } }