💡 문제

💬 입출력 예시

📌 풀이(소스코드)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N;
static int[] P;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
P = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
P[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(P);
for (int i = 0; i < N - 1; i++) {
P[i + 1] += P[i];
}
int sum = 0;
for (int i = 0; i < N; i++) {
sum += P[i];
}
System.out.println(sum);
}
}
📄 해설
접근
- 그리디 알고리즘 기본문제.
- 문제를 잘 읽어보면, 배열을 정렬 하는 것이 우선이라는 것을 알 수 있다.
- 정렬된 배열의 누적합을 구하면 끝
과정