백준 문제풀이

비트마스크 란?

11723번 문제를 풀면서 나온 개념을 잠깐 정리해보고자 한다.

 

Bitmask란 비트위에 마스크를 씌우는 방식을 통해서

어떤 위치에 집합의 원소가 존재하는지 아닌지, 추가하는 등의 행위를 말하며, 정수의 이진수 표현을 활용한 기법이다.

 

 

비트마스크에서 사용하는 비트의 특징은 다음과 같다.

 

  • 이진수는 0, 1 만을 가지고, true/fasle 상태를 가진다.
  • 이진수는 십진수로 표현 가능하다.
  • 비트연산은 AND, OR, XOR, NOT, SHIFT를 사용한다

예시로 기존의 비트가 1010으로 표현중일때, 결과를 1110으로 바꾸기 위해서는 (2번째 비트를 1로 변경하기 위해서는)

1010 | 1 << 2 의 연산을 활용한다

1110인 비트를 1010으로 변경시킬 때에는 (2번째 비트를 0으로 변경하기 위해서는)

1110 & ~1 << 2의 연산을 활용한다 

 

 

'백준 문제풀이' 카테고리의 다른 글

[백준/C++] 11279 최대 힙  (0) 2020.08.28
[백준/C++] 11723 집합  (0) 2020.08.28
[백준/C++] 18870 좌표압축  (0) 2020.08.28
좌표 압축 알고리즘 이란?  (0) 2020.08.28
[C++/백준] 11724 연결요소의 개수  (0) 2020.08.22