const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const N = Number(input.shift());
const numArr = input[0]
.split(" ")
.map(Number)
.sort((a, b) => a - b);
let answer = 0;
for (let i = 0; i < N; i++) {
let memoizedSum = 0;
for (let j = i - 1; j >= 0; j--) {
memoizedSum += numArr[j];
}
answer += memoizedSum;
answer += numArr[i];
}
console.log(answer);
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0]);
let arr = input[1].split(' ').map(Number);
arr.sort((a, b) => a - b);
let answer = 0;
let summary = 0;
for (let i = 0; i < n; i++) {
summary += arr[i];
answer += summary;
}
console.log(answer);
이 풀이가 시간복잡도가 O(n)이어서 더 효율적인 풀이 인것같다.
summary 라는 변수에 지금까지의 값을 더해주면서, 또 answer에 summary 를 더해주면 된다.