Competition/Baekjoon

[백준] 11399번 자바 ATM

bisi 2020. 4. 9. 11:22
문제 출처 

https://www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

 

 

접근 방식 및 풀이

- 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