algorithm
[JAVA] 백준 11399번 : ATM
qazyj
2020. 12. 4. 12:47
- 생각
ATM의 모든 사람의 대기시간의 합을 구하는 문제이다.
앞에사람의 작업시간이 길어질 수록 총 대기시간이 길어지니 오름차순 정렬을 통해 대기시간을 최소로 해줘야한다.
- 코드
정답 코드 : arrays.sort를 통해 오름차순 정렬을 해준 뒤, 총 대기시간을 구해주었다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N;
static int[] array;
public static void main(String[] args) throws Exception {
SetData();
System.out.println(ReturnWaitingTime());
}
private static void SetData() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
array = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++)
array[i] = Integer.parseInt(st.nextToken());
// 오름차순 정렬
Arrays.sort(array);
}
private static int ReturnWaitingTime()
{
int sum = 0;
for(int i = 0; i < N; i++) {
sum += array[i] * (N - i);
}
return sum;
}
}