본문 바로가기

HackerRank

[해커랭크] (1Week - Day 1) Mini-Max Sum (javascript)

주어진 배열 arr(n) 에서 n-1 개 합의  최소, 최대 구하기

조건

  • 배열은 5개의 정수를 가짐
  • 5개의 정수 중 4개의 정수를 선택하여 합한 값이 최소, 최대일 경우 출력

 

제한사항

  • 1 ≤ arr[i] ≤ 10⁹

 

나의 풀이

  • 조합(combination, nCr)을 이용하여 풀이
  • for loop를 이용하여 배열 길이만큼 순환
    •  배열에서 i 번째 값을 제외한 n-1개의 정수를 더한 값을 각각 min, max와 비교하여 출력
// 생략

/*
 * Complete the 'miniMaxSum' function below.
 *
 * The function accepts INTEGER_ARRAY arr as parameter.
 */

function miniMaxSum(arr) {
    // Write your code here
    let min = Infinity;
    let max = 0;
    for(let i = 0; i < arr.length; i++) {
        const slice = [...arr.slice(0, i), ...arr.slice(i+1)];
        const sum = slice.reduce((a, b) => a+=b, 0);
        
        min = Math.min(min, sum);
        max = Math.max(max, sum);
        
    }
    
    console.log(`${min} ${max}`);

}

//  ..후략

결과