반응형
 

11723번: 집합

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

www.acmicpc.net

 

시간초과가 떠서 입력 방식을 바꿔주니 해결되었습니다.

#include <iostream>
#include <set>
#include <string>
using namespace std;
int m, n;
string s;
set<int> st;
int main() {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	cin >> m;
	while (m--) {
		cin >> s;
		if (s == "all") {
			s.clear();
			for (int i = 1; i <= 20; i++) st.insert(i);
		}
		else if (s == "empty") st.clear();
		else {
			cin >> n;
			if (s == "remove") st.erase(n);
			else if (s == "check") {
				if (st.find(n) != st.end()) cout << "1\n";
				else cout << "0\n";
			}
			else if (s == "toggle") {
				if (st.find(n) != st.end()) st.erase(n);
				else st.insert(n);
			}
			else st.insert(n);
		}
	}
}
반응형

'Algorithm' 카테고리의 다른 글

백준 4963 : 섬의 개수  (0) 2021.11.12
백준 1707 : 이분 그래프  (0) 2021.11.11
백준 15658 : 연산자 끼워넣기 (2)  (0) 2021.11.11
백준 1182 : 부분수열의 합  (0) 2021.11.11
백준 10971 : 외판원 순회 2  (0) 2021.11.11

+ Recent posts