BOJ 문제풀이

백준 11723번 c++ 풀이

koreasunoo 2021. 8. 14. 15:25

안녕하세요 오늘은 vector를 이용하여 집합을 구현해서 문제를 풀어보겠습니다.

 

전략:

vector를 21의 길이로 만들어서 v[num]이 1이면 num이 있다고 생각하고, v[num]이 0이면 num이 없다고 생각하고 풀 면 쉽게 풀 수 있습니다.

 

코드:

#include <bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int M;
	cin>>M;
	vector<int> v(21);
	for(int i = 0; i<M; ++i){
		string x;
		cin>>x;
		if(x=="add"){
			int num;
			cin>>num;
			v[num] = 1;
		}
		else if(x=="remove"){
			int num;
			cin>>num;
			v[num] = 0;
		}
		else if(x=="check"){
			int num;
			cin>>num;
			if(v[num] == 0){
				cout<<"0\n";
			}
			else if(v[num] == 1){
				cout<<"1\n";
			}
		}
		else if(x=="toggle"){
			int num;
			cin>>num;
			if(v[num] == 1){
				v[num]=0;
			}
			else if(v[num] == 0){
				v[num]=1;
			}
		}
		else if(x=="all"){
			for(int j= 1; j<=20; ++j){
				v[j] = 1;
			}
		}
		else if(x=="empty"){
			for(int j = 1; j<=20; ++j){
				v[j] = 0;
			}
		}
	}

}

'BOJ 문제풀이' 카테고리의 다른 글

백준 1620번 c++ 풀이  (0) 2021.08.17
백준 17626번 c++ 풀이  (0) 2021.08.14
백준 2748번 c++ 풀이  (0) 2021.08.14
백준 18111번 c++ 풀이  (0) 2021.08.14
백준 10773번 c++ 풀이  (0) 2021.08.13