Gidhub BE Developer

비트 마스크 (Bit Mask)

2018-03-27
goodGid

Empty 집합 & Full 집합


int set = 0;
    
int set = (1 << 20) - 1;
 

원소 추가


set |= (1<<p);
 

원소 포함 여부 체크


if( set & ( 1<<p ) )
        cout << "p번째 원소는 집합안에 존재 " << endl;
 

원소 삭제


set &= ~(1<<p);
 

원소 토글


set ^= (1<<p);
 

모든 부분 집합 순회


for(int subset = set; subset; (subset-1) & set)
 

비트로 덧셈 구현


int pivot = 1;
while ( pivot <= a || pivot <= b) {
if( (pivot & b) != 0 )
        a += pivot;    
pivot = (pivot << 1);
}
    


Review

  • 비트를 이용한 문제풀이시 사용될 만한 Code

Next : Swap

Comments

Content