N | M | result |
---|---|---|
3 | 2 | [[1, 1], [1, 2], [1, 3], [2, 1], [2, 2], [2, 3], [3, 1], [3, 2], [3, 3]] |
DFS(L)
로 깊이(L)이 0부터 N 까지 깊어지는 함수를 만들면, L 은 만들어질 수열의 L번 인덱스가 될 수 있다.temp
라는 임시 빈 배열을 만들어 두고, temp 배열의 각 인덱스에 L 을 대입한다. i
로 채워넣는다면, 아래와 같다.const solution = (N, M) => {
const temp = Array.from({ length: M }, () => 0);
const answer = [];
const DFS = L => {
if (L === M) {
answer.push([...temp]);
} else {
for (let i = 1; i <= N; i++) {
temp[L] = i;
DFS(L + 1);
}
}
};
DFS(0);
return answer;
};