/ BOJ

BOJ_11399_ATM_JAVA

문제 : ATM

링크 : BOJ_11399_ATM

접근 방식

오름차순 정렬한 뒤 모든 사람의 누적 시간의 합을 더해서 총 누적 시간을 출력하면 되는 간단한 문제이다.

풀이 방법

  1. 사람 수를 읽어올 변수, 사람별 대기 시간을 저장할 배열을 생성하고 값을 할당한다.

  2. 2중 반복하는데, 뒤에 사람이 늘어날 때마다 앞의 사람의 대기 시간을 누적하여 구할 수 있도록 내부 반복문은 1부터 점차적으로 증가하게끔 한다.

  3. 모든 반복이 종료된 후 총 누적 대기 시간을 출력한다.

소스 코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BOJ_11399_ATM {

	public static void main(String[] args) throws NumberFormatException, IOException {

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		int N = Integer.parseInt(in.readLine());

		StringTokenizer st = new StringTokenizer(in.readLine(), " ");

		int[] arr = new int[N];

		for(int i=0;i<N;i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		Arrays.sort(arr);

		/*
		    1
			12
			123
			1234
			12345
		*/
		int sum = 0;
		for(int i=0;i<N;i++) {
			for(int j=0;j<=i;j++) {
				sum = sum + arr[j];
			}
		}

		System.out.println(sum);

	}

}