N

(Leet Code JS)Combinations 본문

Leet Code 알고리즘

(Leet Code JS)Combinations

naeunchan 2021. 9. 23. 09:24
728x90
반응형

77. Combinations

 

Given two integers n and k, return all possible combinations of k numbers out of the range [1, n].

You may return the answer in any order.

 

Example 1:

Input: n = 4, k = 2 Output: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]

Example 2:

Input: n = 1, k = 1 Output: [[1]]

 

Constraints:

  • 1 <= n <= 20
  • 1 <= k <= n
const combination = (arr, count) => {
    const result = [];
    
    if(count === 1){
        return arr.map((val) => [val]);
    }
    
    arr.forEach((fixed, index, origin) => {
        const rest = origin.slice(index + 1);
        const cb = combination(rest, count - 1);
        const attached = cb.map((c) => [fixed, ...c]);
        
        result.push(...attached);
    });
    
    return result;
}

const combine = (n, k) => {
    const array = [];
    
    for(let i = 1; i <= n; i++){
        array.push(i);
    }
    
    return combination(array, k);
};
728x90
반응형