집합 - boj.kr/11723 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#include #include using namespace std; int main(void){ ios_base::sync_with_stdio(false); cin.tie(false); int m, s = 0; cin >> m; string order; int x; for (int i = 0; i > order; if (order == "add") { cin >> x; x--; s = (s | (1 x; x--; s = (s&(~(1 x; x--; int num = (s&(1
비트마스크(Bitmask) 비트마스크는 간단하게 말하자면, 집합의 표현을 비트로 표현하는 것이다. 예로 들어, 집합 A = {1,3,5,6,7}가 있다고 하자, 비트마스크를 모른다면, bool타입의 array를 이용해서 true, false 체크를 할 것이다. 하지만, 비트마스크를 이용한다면, 아주 간단하게 표현 할 수 있다. 다음 Bool Array에서 T는 해당 원소가 있음을 뜻하고, F는 없음을 뜻한다. 집합 A를 비트마스크를 이용해서 표현해보자. 가장 큰 수가 7이니, 0-7까지 집합의 원소가 있음을 1로 표현하고 없음을 0으로 표현하면, 원소 7이 있음 -> 1, 원소 6이 있음 -> 1 원소 5가 없음 -> 0 ...원소 0이 없음 ->0 으로 표현 할 수 있다. 그렇다면, 이 0과 1의 모음..