반응형
문제
풀이
package greedy;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
// ATM
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());//사람의 수
int[] arr = new int[n];//인출 시간
StringTokenizer st = new StringTokenizer(br.readLine()," ");
for(int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
//오름차순 정렬
Arrays.sort(arr);
int sum = 0;//시간의 합의 최솟값
int prev = 0;//이전 소요시간
for(int i = 0; i < n; i++) {
prev += arr[i];
sum += prev;
}
System.out.println(sum);
br.close();
}
}
팁
- 시간의 합을 최소로 만들기 위해, 오름차순 정렬하여 인출시간이 짧은 순서대로 줄을 서도록 한다.
출처
반응형
'알고리즘 > Java' 카테고리의 다른 글
[백준] 2217.로프(Java8) (0) | 2021.10.04 |
---|---|
[백준] 11047.동전 0(Java8) (0) | 2021.10.04 |
[백준] 2839.설탕 배달(Java8) (2) | 2021.10.01 |
[백준] 2775.부녀회장이 될테야(Java8) (0) | 2021.09.24 |
[백준] 2231.분해합(Java8) (0) | 2021.09.21 |