-
[백준] 11723 집합Problem Solving/Baekjoon Online Judge 2020. 4. 29. 16:52
✔️ 문제 링크
https://www.acmicpc.net/problem/11723
✔️ 문제 이해
1. 조건에 따른 구현을 하면된다.
✔️ 설계
1. check 배열을 이용해서 풀 수 있고, set으로도 풀 수 있다.
2. 하지만 비트마스크로 간단히 풀 수 있다.
✔️ 문제 회고
1. 비트마스크 연산에 대한 개념을 알고 있으면 매우 쉽게 풀 수 있다.
👨🏻💻 소스 코드
#include<iostream> #include<string> #include<set> #include<vector> #include<bitset> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int bit=0; int m; cin >> m; for (int i = 0; i < m; i++) { string str; cin >> str; int n; if (str == "add") { cin >> n; bit |= (1 << n - 1); } else if (str == "remove") { cin >> n; bit &= ~(1 << n - 1); } else if (str == "check") { cin >> n; if (bit & (1 << n - 1)) cout << 1 << '\n'; else cout << 0 << '\n'; } else if (str == "toggle") { cin >> n; bit ^= (1 << n - 1); //XOR 연산으로 토글을 구현한다. } else if (str == "all") { bit = 1048576 - 1; } else if (str == "empty") { bit &= 0; } } return 0; }
'Problem Solving > Baekjoon Online Judge' 카테고리의 다른 글
[백준] 14465번 소가 길을 건너간 이유 5 (0) 2020.05.16 [백준] 10971 외판원 순회 2 (0) 2020.05.01 [백준] 14391 종이조각 (0) 2020.04.20 [백준] 1406 에디터 (0) 2020.04.16 [백준] 3980 선발명단 (0) 2020.04.16