문제 설명에 힌트가 이미 나와 있었다.
앞사람의 시간이 적어야 총 걸리는 시간이 최소일 것이다.
따라서 P배열을 오름차순으로 정렬하여 더하면 최소 시간이 된다.
간단한 문제였다.
최종 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] p = new int[n];
String s = br.readLine();
String[] temp = s.split(" ");
int answer = 0;
// 입력을 p배열에 넣기
for (int i = 0; i < p.length; i++) {
p[i] = Integer.parseInt(temp[i]);
}
// p 배열 정렬
Arrays.sort(p);
// 합을 구하기 위한 배열
int[] total = new int[n];
// total 첫번째 값 넣기
total[0] = p[0];
for (int i = 1; i < p.length; i++) {
total[i] = total[i-1] + p[i];
}
// 배열 전체 합
answer = Arrays.stream(total).sum();
System.out.println(answer);
}
}
'코딩 테스트' 카테고리의 다른 글
(Java) 백준 11047 - 동전 0 (0) | 2022.05.11 |
---|---|
(Java) 백준 9095 - 1, 2, 3 더하기 (0) | 2022.05.10 |
(Java) 백준 1463 - 1로 만들기 (0) | 2022.05.07 |
(Java) 프로그래머스 신고 결과 받기 (0) | 2022.05.06 |
(Java) 프로그래머스 피로도 (0) | 2022.05.02 |