- 생각
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;
}
}
'algorithm' 카테고리의 다른 글
[JAVA] 백준 14241번 : 슬라임 합치기 (0) | 2020.12.07 |
---|---|
[JAVA] 백준 1931번 : 회의실 배정 (0) | 2020.12.04 |
[JAVA] 백준 3036번 : 링 (0) | 2020.12.03 |
[JAVA] 백준 2089번 : -2진수 (2) | 2020.12.03 |
[JAVA] 백준 15965번 : K번째 소수 (0) | 2020.12.02 |