본문 바로가기
알고리즘/문제풀이

[JAVA]백준 - 11399.ATM

by 겅아링 2020. 9. 9.
반응형

www.acmicpc.net/problem/11399

 

11399번: ATM

첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)

www.acmicpc.net

 

 

 

 

 

 

 

풀이>

걸리는 시간이 적은순으로 정렬한 후
앞에서부터 시간을 더하고 더한값에 또더하고...반복

ex)5
3 1 4 3 2

Arrays.sort()  ->  [1 2 3 3 4]
1
+
1+2
+
1+2+3
+
1+2+3+3
+
1+2+3+3+4
=32
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		
			String count = br.readLine();
			StringTokenizer timeLine = new StringTokenizer(br.readLine());
			br.close();
			int[] time = new int[Integer.parseInt(count)];
			for (int i = 0; i < time.length; i++) {
				time[i]=Integer.parseInt(timeLine.nextToken());
			}
			
			Arrays.sort(time);
			int sum=0;
			int sum2=0;
			for(int i=0;i<time.length;i++) {
				sum+=time[i];
				sum2+=sum;
				
			}
			
			bw.write(String.valueOf(sum2));
			bw.flush();
			bw.close();
		

	}
}
반응형