더 나은 개발자가 되고싶다..

쉬프트 연산을 이용한 부분집합 개수 본문

코딩/Algorithm

쉬프트 연산을 이용한 부분집합 개수

오맹이 2019. 2. 13. 15:39

자바의 << 쉬프트 연산을 이용한 부분집합의 개수 구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package month.february.day13;
 
 
public class Test01_perm3 {
    public static void main(String[] args) {
        int arr[] = {3,6,7,1,5,4};
        int n = arr.length;
        int cnt = 0;
        
        for (int i = 0; i < (1<<n); i++) {
            //1<<n = 부분집합 개수
            for (int j = 0; j < n; j++) {
                //원소수 만큼 비트를 비교함
                if ((i &(1 << j)) !=0) {
                    System.out.printf("%d ",arr[j]);
                }
            }
            cnt++;
            System.out.println();
        }
        System.out.println(cnt);
    }
}
 
cs








'코딩 > Algorithm' 카테고리의 다른 글

[SW Expert Academy] 9489. 고대 유적  (0) 2022.08.22