본문 바로가기
Algorithm/알고리즘 설명

[알고리즘] 비트마스크 (BitMask)

by Sky Titan 2020. 9. 28.
728x90

비트마스크 (BitMask)

  • 정수로 집합을 나타낼 수 있는 기법

 

비트마스크를 사용하는 이유

  • 완전 탐색 시 재귀호출 없이 모든 경우를 살펴볼 수 있다. (브루트 포스)
  • 집합을 배열의 인덱스로 표현 가능하다. → 메모리 절약 가능
  • 상태가 다이나믹한 경우에 자주 사용한다.

 

연산

1. 포함 검사

  • '&' 사용
  • 집합 S에 i가 포함되었는지 검사 : S & (1 << i)
  • 0 : 미포함
  • 2 ^ i : 포함

 

2. 추가

  • '|' 사용
  • 집합 S에 i 추가 : S | (1 << i)

 

3. 삭제

  • '&', '~' 사용
  • 집합 S에 i 삭제 : S & ~(1 << i)

 

4. 토글

  • '^' 사용
  • 집합 S에 i 토글 : S ^ (1 << i)
728x90

댓글