IT 기획의 길
백준 11399번 ATM [JAVA] 본문
알고리즘 설계:
1. 먼저 사람의 수를 입력받는다.
2. 각 사람의 인출 시간과 각 사람의 앞사람의 인출시간까지 고려한 인출시간을 구하는 배열을 정의한다
3. 적게 걸리는 사람부터 줄 서는게 각 사람의 앞사람의 인출시간까지 고려한 인출시간을 최소로 만든다
4. 각 사람의 인출시간을 입력으로 받고 그 값을 배열에 담아 오름차순으로 정렬한뒤 그 값에 따라 각 사람의 앞사람의 인출시간까지 고려한 총 인출시간을 구한다
import java.util.*;
public class ATM {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int time[]=new int[n]; //각 사람의 인출 시간
int Alltime[]=new int[n];// 앞 사람의 인출 시간까지 고려한 인출시간
int sum=0;
for(int i=0;i<n;i++) {
time[i]=scan.nextInt();
}
Arrays.sort(time); //적게 걸리는 사람부터 줄 서는게 최소 인출시간을 구하는 방법이다
for(int i=0;i<n;i++) {
int j=i;
while(j>=0) {
Alltime[i]+=time[j];
j--;
}
}
for(int i=0;i<n;i++) {
sum+=Alltime[i]; //모든 사람의 인출시간 총합(최솟값)
}
System.out.println(sum);
}
}
'알고리즘(백준) > 정렬' 카테고리의 다른 글
백준 10814번 나이순 정렬 [JAVA] (0) | 2020.12.26 |
---|---|
백준 1026번 보물 [JAVA] (0) | 2020.12.26 |
백준 11650번 좌표 정렬하기 [JAVA] (0) | 2020.12.26 |
백준 1181번 단어정렬 [JAVA] (0) | 2020.12.26 |