자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램
을 작성하세요.
Input | Output |
---|---|
3 | ["123","12","13","1","23","2","3"] |
N
길이 만큼 1
을 채워넣은 체크용 배열 arr
로 각 숫자가 포함 될 때와 포함되지 않을 때를 나눠서 탐색한다.const solution = (num) => {
const answer = [];
let result = "";
const arr = new Array(num);
arr.fill(1);
const DFS = (dt) => {
if (dt === num + 1) {
for (let i = 1; i <= arr.length; i++) {
if (arr[i] === 1) result += i;
}
result && answer.push(result);
result = "";
} else {
arr[dt] = 1;
DFS(dt + 1);
arr[dt] = 0;
DFS(dt + 1);
}
};
DFS(1);
return answer;
};