// BOJ 11723번 : 집합
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
ios_base::sync_with_stdio(false); // 입출력 빠르게 해 줌
cin.tie(NULL);
cout.tie(NULL);
int m;
cin >> m;
set<int> s;
set<int> new_s = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
for(int i = 0; i < m; i++){
string com;
int n;
cin >> com;
if(com == "add"){
cin >> n;
s.insert(n);
}
else if(com == "remove"){
cin >> n;
if(s.count(n)) // 원소가 있을 때
s.erase(n);
}
else if(com == "check"){
cin >> n;
if(s.count(n)) // 원소가 있을 때
cout << 1 << "\n";
else // 원소가 없을 때
cout << 0 << "\n";
}
else if(com == "toggle"){
cin >> n;
if(s.count(n)) // 원소가 있을 때
s.erase(n); // 삭제
else // 원소가 없을 때
s.insert(n); // 삽입
}
else if(com == "all"){ // 원소 바꾸기
s = new_s;
}
else if(com == "empty") // 공집합
s.clear();
}
}
set container란?
set의 사용법
ex) set<int> s;
set의 멤버 함수
s.begin()
: 맨 첫번째 원소 가리킴s.end()
: 맨 마지막 원소 가리킴s.clear()
: 모든 원소 제거s.count(k)
: 원소 k개의 개수 반환 (무조건 0과 1)s.erase(k)
: k가 가리키는 원소 제거s.find(k)
: 원소 k를 가리키는 반복자 반환s.size()
: 원소의 개수 반환