Coding Test 연습
[Baekjoon 11399번] ATM 문제 (with 자바)
LearnerKSH
2022. 4. 14. 16:05
728x90
반응형
문제
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
풀이코드
package com.algorithm._00_._Current;
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.IntStream;
/**
* @Date 2022/04/14
* @URL https://www.acmicpc.net/problem/11399
*/
public class A11399_ATM {
static int N;
static int arr[];
static int result[];
public static void main(String[] args) {
// write your code here
A11399_ATM main = new A11399_ATM();
main.solution();
}
public void solution() {
input();
// 오름차순 정렬
Arrays.sort(arr);
/* 0번째 셋팅 */
result[0] = arr[0];
for (int i = 1; i < arr.length; i++) {
/* result update (이전의 총 합 + 현재의 타겟) */
result[i] = result[i - 1] + arr[i];
}
int sum = Arrays.stream(result).sum();
System.out.println(sum);
}
private void input() {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
arr = new int[N];
result = new int[N];
/* 인접행렬 생성 */
for (int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
}
}
1) 오름차순 정렬
2) result 배열에 각 인덱스별 총합 구하기
3) reulst 배열의 총합 구하기
반응형