쉬운 문제라서 그냥 바로 인덱스로 접근하여 풀 수도 있지만 결과를 보는 것이 아닌 어떻게 접근하는가를 보는 테스트이기 때문에 최대한 시간 복잡도를 고려한 에러처리를 진행하며 풀 것이다.
function miniMaxSum(arr) {
arr = arr.sort( (a,b) => a-b )
let sum = arr.reduce( (a,c) => a+=c, 0)
let minSum = sum - arr[arr.length-1]
let maxSum = sum - arr[0]
console.log(minSum, " ", maxSum)
}
arr의 길이는 5로 고정이므로 reduce를 통해 전체합을 구해준 다음
min은 가장 끝의 인덱스를 뺀 4개의 합이고
max는 가장 처음의 인덱스를 뺀 4개의 합을 통해 값을 구한 후 출력한다.
'use strict';
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
/*
* Complete the 'miniMaxSum' function below.
*
* The function accepts INTEGER_ARRAY arr as parameter.
*/
function miniMaxSum(arr) {
// Write your code here
arr = arr.sort( (a,b) => a-b )
let sum = arr.reduce( (a,c) => a+=c, 0)
let minSum = sum - arr[arr.length-1]
let maxSum = sum - arr[0]
console.log(minSum, maxSum)
}
function main() {
const arr = readLine().replace(/\s+$/g, '').split(' ').map(arrTemp => parseInt(arrTemp, 10));
miniMaxSum(arr);
}