본문 바로가기
백준/C++

백준 11723번 : 집합 [C++]

by 대니스 2022. 8. 26.

주소 : https://www.acmicpc.net/problem/11723

 

11723번: 집합

첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.

www.acmicpc.net

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#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;
	while (M != 0)
	{
		string order;
		cin >> order;
		if (order == "add")
		{
			int element;
			cin >> element;
			s.insert(element);
		}

		else if (order == "check")
		{
			int element;
			cin >> element;
			cout << s.count(element) << '\n';
		}

		else if (order == "remove")
		{
			int element;
			cin >> element;
			s.erase(element);
		}

		else if (order == "toggle")
		{
			int element;
			cin >> element;
			if (s.count(element) == 1)
				s.erase(element);
			else s.insert(element);
		}

		else if (order == "all")
		{
			for (int i = 1;i <= 20;i++)
				s.insert(i);
		}

		else if (order == "empty")
			s.clear();

		M--;
	}
	
}

마무리 : 이 문제는 집합을 이용하는 문제로 C++에 있는 라이브러리 함수를 이용하여 문제에 주어지는 조건에 맞게 코드를 짜면 된다.