자연수 N이 주어지면 1부터 N까지의 원소를 갖는 집합의 부분집합을 모두 출력하는 프로그램 을 작성하세요.
입력설명
첫 번째 줄에 자연수 N(1<=N<=10)이 주어집니다.
출력설명
첫 번째 줄부터 각 줄에 하나씩 부분집합을 아래와 출력예제와 같은 순서로 출력한다. 단 공집합은 출력하지 않습니다.
입력예제
1 3
출력예제
1 1 2 3 1 2 1 3 1 2 3 2 3
function solution(n) {
let answer = []
let ch = Array.from({ length: n + 1 }, () => 0)
function DFS(v) {
if (v === n + 1) {
let tmp = ""
for (let i = 0; i <= n; i++) {
if (ch[i] === 1) tmp += i + " "
}
if (tmp.length > 0) answer.push(tmp.trim())
} else {
ch[v] = 1
DFS(v + 1)
ch[v] = 0
DFS(v + 1)
}
}
DFS(1)
return answer
}
'algorithm' 카테고리의 다른 글
문자열 내 마음대로 정렬하기 (feat. JS sort 함수) (0) | 2023.09.05 |
---|---|
JadenCase 문자열 만들기 (0) | 2023.08.28 |
이진트리 순회 (깊이우선탐색) (0) | 2023.08.19 |
재귀함수를 이용한 이진수 출력 (0) | 2023.08.18 |
삼총사 (0) | 2023.08.17 |