1부터 N까지 번호가 적힌 구슬이 있습니다. 이 중 M개를 뽑는 방법의 수를 출력하는 프로그
램을 작성하세요.
Input | Output |
---|---|
[4,2] | [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] |
[1,4]
가 뽑혔다면 [4,1]
은 경우의 수에 포함되지 않는다.[1,2]
, [1,3]
, [1,4]
까지 순회하고 나온 다음부터 임시 배열의 첫 인덱스를 이미 고려했던 1
이 아닌, 2
로 시작할 수 있다.const solution = (n, m) => {
const answer = [];
const temp = [];
const DFS = (L, S) => {
if (L === m) answer.push([...temp]);
else {
for (let i = S; i <= n; i++) {
temp[L] = i;
DFS(L + 1, i + 1);
}
}
};
DFS(0, 1);
return answer;
};