[BOJ11723] 집합
문제 설명
문제 링크 1~20까지의 원소가 들어갈 수 있는 집합에 명령어를 통해 원소를 추가하거나 삭제, 확인 등을 하는 문제이다.
코드 리뷰
기본적인 비트 마스크 연산을 공부한 후 복습해볼 수 있는 문제이다.
자세한 설명에 대해서는 생략하고, 비트 마스크에 대한 포스팅 링크를 첨부한다.
#include <iostream>
#include <string>
#define endl "\n";
using namespace std;
int M;
int set = 0;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> M;
while(M--){
string s;
int n;
cin >> s;
if(s=="add"){
cin >> n;
set |= (1<<n);
}else if(s=="check"){
cin >> n;
if(set & (1<<n)){
cout << "1"<< endl;
}else {
cout << "0" << endl;
}
}else if(s=="remove"){
cin >> n;
set &= ~(1<<n);
}else if(s=="toggle"){
cin >> n;
set ^= (1<<n);
}else if(s=="empty"){
set = 0;
}else if(s=="all"){
set = (1<<21)-1;
}
}
return 0;
}
댓글남기기