[JS] Combinations

2022. 7. 31. 12:11

🔒 문제 (LeetCode 77)

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.

Constraints:

  • 1 <= n <= 20
  • 1 <= k <= n

 

🌊 입출력

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]]

 


 

🔑 해결

🌌 알고리즘 - DFS 

/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */
var combine = function(n, k) {
    let result = [];
    
    function dfs(cur, start) {
        if(cur.length === k) {
            result.push(cur);
            return;
        }
        
        for(let i = start; i <= n; i++ ) {
            dfs([...cur, i], i + 1);
        }
    }
    
    dfs([], 1);
    
    return result;
};

'코딩테스트 (JS) > DFS | BFS' 카테고리의 다른 글

[JS] Letter Case Permutation  (0) 2022.07.31
[JS] Permutations  (0) 2022.07.31
[JS] Rotting Oranges  (0) 2022.07.30
[JS] 01 Matrix  (0) 2022.07.30
[JS] Populating Next Right Pointers in Each Node  (0) 2022.07.29

+ Recent posts