예제 입력:
5
3 1 4 3 2
예제 출력:
32
그리디 알고리즘 (Greedy Algorithm)
: 선택의 순간마다 현재의 최적의 상황만을 쫓아 최종적인 해답에 도달하는 방법으로 항상 전체적인 최적해를 구하는 것은 아니다.
코드
- 그리디 알고리즘의 조건
- 탐욕 선택 속성(Greedy Choice Property) : 이전의 선택이 이후에 영향을 주지 않음
- 최적 부분 구조(Optimal Substructure) : 부분 문제의 최적결과가 전체에도 그대로 적용될 수 있어야 함
import java.util.*;
public class No_11399 {
public static void main(String args[]) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int arr[]=new int[N];
int min=0; //이전까지 대기시간 총합
int sum=0; //총합
for(int i=0;i<N;i++) {
arr[i]=sc.nextInt();
}
//오름차순 정렬
Arrays.sort(arr);
for(int i=0;i<arr.length;i++) {
min+=arr[i];
sum+=min;
}
System.out.println(sum);
}
}
실행 결과