자바/코드트리
[코드트리] 효율적으로 더하기 - 자바(Java)
Jakorithm
2024. 6. 9. 00:21
728x90
문제
https://www.codetree.ai/problems/add-efficiently?&utm_source=clipboard&utm_medium=text
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
a1 ~ an으로 이루어져 있는 n개의 정수가 주어졌을 때 다음의 연산을 실행합니다.
- (a1) + (a1 + a2) + (a1 + a2 + a3) + ... + (a1 + a2 + a3 + ... + an)
각 정수의 순서를 바꿔도 된다고 할 때, 총 합의 최솟값을 구하는 프로그램을 작성해보세요.
입력 예시
5
3 1 4 3 2
출력 예시
32
코드
첫 번째 줄에는 정수 N이 주어집니다.
두 번째 줄에는 각 정수가 공백을 두고 주어집니다.
- 1 ≤ n ≤ 1,000
- 1 ≤ 수열 a의 원소 ≤ 1,000
import java.io.*;
import java.util.*;
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));
int n = Integer.parseInt(br.readLine());
int[] nums = new int[n];
int result = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
nums[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(nums);
for (int i = 0; i < n; i++) {
result += nums[i] * (n - i);
}
bw.write(String.valueOf(result));
bw.flush();
bw.close();
}
}
728x90