이진트리순회
function solution() {
const array = [1, 2, 3, 4, 5, 6, 7];
function Front(cur, visited) {
if (visited.includes(cur)) return;
if (!array[cur]) return;
visited.push(cur);
Front(2 * cur + 1, visited);
Front(2 * cur + 2, visited);
console.log(array[cur]);
}
Front(0, []);
}
solution();
이진수 출력하기
let answer = "";
function DFS(number) {
if (number === 0) return;
DFS(Math.floor(number / 2));
answer += `${number % 2}`;
}
DFS(number);
return answer;
부분집합구하기

function solution(n) {
const array = [...new Array(n)].map((_, i) => i + 1);
function DFS(number, visited) {
if (number === n+1) {
console.log(visited);
return;
}
DFS(number + 1, [...visited, number]);
DFS(number + 1, [...visited]);
}
DFS(1, []);
}
console.log(solution(3));