- 공간을 적게 사용
- 정수
- 검사, 추가, 삭제의 3가지 연산이 모두 시간복잡도 O(1)로 수행 가능
1. 집합 S에 x가 있는지 검사
S & (1<<x)
2. 집합 S에 x 추가
S | (1<<x)
3. 집합 S에 x 제거
S | ~(1<<x)
4. toggle (0에서 1로, 1에서 0으로)
S ^ (1<<x)
5. 0~(N-1)까지의 전체집합
S = (1<<N) -1
6. 공집합
S = 0
'🖥' 카테고리의 다른 글
[C++] Union-Find 기본 함수 (0) | 2023.08.23 |
---|---|
[Python] 2차원 배열 안의 부분 배열 회전하기 (2) | 2023.04.30 |
[python3] itertools 없이 다음 순열 구하기 (C++ next_permutation 파이썬으로 구현) (1) | 2023.04.10 |
[Raspberry pi] 맥에서 라즈베리파이 접속하기 (ssh 및 원격접속) (2) | 2023.03.01 |
[Python3] 최대공약수, 최소공배수 구하기 (math 라이브러리) (0) | 2023.01.29 |
댓글