코드와이
부분집합 본문
부분집합 1
1, 2, 3 을 갖고 만든 부분 집합으로 재귀를 사용.
[1, 2, 3], [1, 2], [1, 3], [1], [2, 3], [2], [3], [] 을 출력.
package week0201_0205;
public class 부분집합 {
static boolean[] isSelected = new boolean[3];
static int[] arr = {1,2,3};
public static void main(String[] args) {
func(0);
}
public static void func(int idx) {
if(idx == 3) {
for(int i = 0 ; i < 3 ; i++) {
if(isSelected[i]) {
System.out.print(arr[i]+ " ");
}
}
System.out.println();
return;
}
isSelected[idx] = true;
func(idx+1);
isSelected[idx] = false;
func(idx+1);
}
}
<실행결과>
부분집합 2
1, 2, 3 을 갖고 만든 부분 집합으로 bit 이동으로 비교.
[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3] 을 출력.
package week0201_0205;
public class 부분집합2 {
public static void main(String[] args) {
int[] arr = {1,2,3};
for(int i = 0 ; i < 8 ; i++) {
for(int j = 0 ; j < 3 ; j++) {
if((i & (1 << j)) > 0) {
System.out.print(arr[j]);
}
}
System.out.println();
}
}
}
<실행결과>
'algorithm' 카테고리의 다른 글
[Back Tracking] N-Queen 예제 + 설명 (0) | 2021.02.18 |
---|---|
분할 알고리즘 예시(1) (0) | 2021.02.16 |
CompleteBinaryTree (0) | 2021.02.10 |
LinkedList (0) | 2021.02.10 |
순열과 조합 (0) | 2021.02.05 |