
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const input = fs.readFileSync(path).toString().trim().split('\n');
const result = [];
const times = input[1]
.split(' ')
.map(Number)
.sort((a, b) => Number(a) - Number(b));
times.reduce((pre, cur) => {
result.push(pre + cur);
return pre + cur;
}, 0);
console.log(result.reduce((pre, cur) => pre + cur));
쉬운 그리디 유형 문제다.
어차피 기다리는거 시간 똑같은거 아냐 ?라고 생각할 수도 있다.(내가 그랬음)
하지만 마지막사람만 기다리는 시간이 동일한 것이고 모든사람이 기다리는 시간의 총합에는 문제가 간다.
이 문제는 간단하게 업무처리시간이 짧은 순서대로 정렬해준 뒤 누적합을 누적합해주면 된다.