백준 / 11399 / ATM / java

맹민재·2023년 5월 19일
0

Java

목록 보기
14/32
package backjun.I그리디;

import java.util.Scanner;
import java.util.Arrays;

public class ATM {
    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();
        }
        sc.close();

        Arrays.sort(arr);

        for(int i=1; i<n;i++){
            arr[i] += arr[i-1];
        }
        System.out.println(Arrays.stream(arr).sum());

    }
}

그리디 알고리즘으로 해결한 문제

앞사람이 ATM을 사용하면 뒷 사람은 앞 사람이 사용한 만큼 기다려야한다. 즉 시간이 추가된다. 추가되는 시간을 최소로 하기 위해서는 오름차순으로 정렬해 주어야한다.

오름차순으로 정렬 후 누적 시간까지 다 더해주면 답을 구할 수 있다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글