⊙ 문제
사람수만큼 걸리는 시간을 입력받았을때 걸리는 시간을 최소화 하려면
시간이 적게 걸리는 사람부터 인출을 하면 된다.
따라서 사람수 만큼 시간을 입력받고 오름차순 정렬을 해주면 문제를 해결할 수 있다.
이때 사람마다 걸리는 시간과 총 걸리는 시간 변수를 따로 만들어 답을 얻을 수 있다.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(); // 사람수 입력받기
int p[] = new int[n]; // 각각 사람별 걸리는 시간
int delayTime=0;
int sum = 0;
// 사람별 걸리는 시간 입력받기
for(int i=0;i<n;i++) {
p[i] = in.nextInt();
}
Arrays.sort(p);
for(int i=0;i<p.length;i++) {
delayTime = delayTime + p[i];;
sum = sum + delayTime;
}
System.out.println(sum);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준_단계별로 풀어보기]기본수학1 - 2839번 설탕배달 | 파이썬 (0) | 2022.09.05 |
---|---|
[백준 1931] 그리드-회의실 배정 | JAVA (0) | 2022.02.06 |
[백준 11047]그리드-동전 | JAVA (0) | 2022.02.06 |
[백준_단계별로 풀어보기] 문자열 - 11720번 숫자의 합 | c언어 (0) | 2022.01.13 |
[백준_단계별로 풀어보기] 문자열 - 11654번 아스키 코드 | c언어 (0) | 2022.01.13 |