[알고리즘] 자바 비트마스크 부분집합 구하기 (백준 1182)
비트 연산자 종류 비트연산자 설명 & 비트 단위 AND 연산 ( 비트가 모두 1이면 1 반환 ) | 비트 단위 OR 연산 ( 비트중 하나이상 1이면 1 반환 ) ^ 비트 단위 XOR 연산 ( 비트가 서로 다르면 1 반환 ) ~ 비트 단위 NOR 연산 ( 0 -> 1, 1 -> 0 반환 ) 비트 Right Shift 연산 ( 비트를 오른쪽으로 이동 ) 위 비트 연산자들을 이용하여 쉽게 집합의 부분집합을 구할 수 있다. 부분 집합의 수 {1, 2, 3} 집합이 존재한다고 치면, 부분 집합의 개수는 1 포함여부 (2) , 2 포함여부 (2), 3 포함여부 (2) => 2*2*2 = 8개 이다. (공집합 포함) 직접 나열해보면 {}, {1}, {1,2}, {1,3}, {2}, {2,3}, {3}, {1,2,3}..