-
비트연산자와 비트마스크알고리즘 문제풀이/Python 2020. 2. 9. 14:26
파이썬의 비트연산자의 종류는 다음과 같다.
a = 60 (0011 1100)
b = 13 (0000 1101)
Operator Description Example
& AND 연산. 둘다 참일때만 만족 (a & b) = 12 → 0000 1100 | OR 연산. 둘 중 하나만 참이여도 만족 (a | b) = 61 → 0011 1101 ^ XOR 연산. 둘 중 하나만 참일 때 만족 (a ^ b) = 49 → 0011 0001 ~ 보수 연산. (~a) = -61 → 1100 0011 << 왼쪽 시프트 연산자. 변수의 값을 왼쪽으로 지정된 비트 수 만큼 이동 a << 2 = 240 → 1111 0000 >> 오른쪽 시프트 연산자. 변수의 값을 오른쪽으로 지정된 비트 수 만큼 이동 a >> 2 = 15 → 0000 1111 비트마스크
데이터를 저장하기 위해 이진수를 사용한다.
비트마스크는 특정 값 여러개를 하나의 정수로 표현하여, 이를 배열의 인덱스로 각 값을 활용가능하다.
1 << n
2^n을 의미하는 것으로, 원소가 n개일 경우의 모든 부분집합의 수를 의미한다.
각 원소가 포함되거나 포함되지 않는 2가지의 경우를 가진 모든 부분집합의 수
i & ( 1 << j )
i의 j번째 비트가 1인지 확인할 수 있다.
'알고리즘 문제풀이 > Python' 카테고리의 다른 글
[구름에듀] 환상의 조합 (0) 2020.02.08 [프로그래머스 Level 1] K번째 수(map, sort, sorted) (0) 2020.02.06