Binary Counting은 비트연산을 이용해서 부분집합을 구하는 알고리즘이다.
-------------------------------------
void main(void){
int i, j, n = 4;
char arr[4] = { 'a', 'b', 'c', 'd' };
for (i = 0; i < (1 << (n)); i++){
for (j = 0; j < n; j++){
if (i & (1 << j)){
printf("%c ", arr[j]);
}
}
printf("\n");
}
}
-------------------------------------
이 코드에서 살펴볼 부분은
- 1<<n : 2^n을 의미. 모든 부분집합의 갯수
- i&(1<<j) : i의 j번째 비트가 1인지 아닌지 판단한다.
+) &연산자는 두 개의 비트가 모두 1이어야 1을 리턴한다.
'Programming' 카테고리의 다른 글
[SQL] SQL 기본 with MySql (0) | 2019.01.01 |
---|---|
[Algorithm] 달팽이 배열 (0) | 2018.03.28 |
[Algorithm] 알고리즘 자료 (0) | 2018.03.26 |
[Node.js] NPM/Java Script (0) | 2018.03.26 |
[Node.js] 개요 (0) | 2018.03.26 |