https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
다음 문제는 인출하는데 필요한 시간의 최솟값을 구하는 프로그램이다.
줄 순서대로 앞에서부터 뒤까지 시간을 더하여 최소가 되려면 앞에 오는 숫자가 작아야 한다.
따라서 사람의 수 N 값을 입력받고 배열의 공간을 N만큼 선언하여 값을 삽입한 다음
오름차순 정렬한 뒤 한 변수에 += 연산을 하면 최솟값이 나온다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int arr[] = new int[N];
int sum = 0;
for(int i=0;i<N;i++)
{
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
for(int i=0;i<N;i++)
{
for(int j=0;j<i+1;j++)
{
sum += arr[j];
}
}
System.out.println(sum);
}
}
'알고리즘 > 백준 풀이(그리디)' 카테고리의 다른 글
백준 14916번 - 거스름돈 (0) | 2024.01.23 |
---|---|
백준 1946번 - 신입 사원 (0) | 2024.01.19 |
백준 2217번 - 로프 (0) | 2024.01.18 |
백준 1026번 - 보물 (0) | 2024.01.17 |
백준 11047번 - 동전 0 (0) | 2024.01.16 |