문제 내용은 처음 입력 받은 값은 사람 수를 의미하고, 다음 으로 입력받는 값은 사람별로 걸리는 시간을 의미하는데, 사람들이 모두 이용했을 때 걸린 최소 시간을 출력해줘야 한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
// 두 번째로 받은 값 정렬해서 최소값 순서대로 더하면 끝이잖아
public class ATM {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int people = Integer.parseInt(br.readLine());
int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
Arrays.sort(arr);
int output = 0;
int answer = 0;
for(int i = 0; i<people; i++) {
output += arr[i];
answer += output;
}
System.out.println(answer);
}
}
최소 시간을 구하기 위해서는 두 번째 들어온 입력 배열을 작은 순으로 정렬해준 뒤 하나씩 더해주면서 최소 시간을 구해준 후 반환해주면 그대로 끝이다.
Leave a Reply