728x90
유형 | 난이도 | 완료일 | 링크 | 특이사항 |
집합 | 실버5 | 23/03/23 | https://www.acmicpc.net/problem/11723 |
내 코드
#include <iostream>
#include <set>
using namespace std;
set<int> box;
string s;
int k=0;
int main(void)
{
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n=0;
cin >> n;
//unordered_set<int> setting ={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<n; i++)
{
cin >> s;
char c = s[1];
if(c=='d')
{
cin >> k;
box.insert(k);
}
else if(c=='e')
{
cin >> k;
box.erase(k);
}
else if(c=='h')
{
cin >> k;
if(box.find(k)==box.end())
cout<<0<<"\\n";
else
cout<<1<<"\\n";
}
else if(c=='o')
{
cin >> k;
if(box.find(k)==box.end())
box.insert(k);
else
box.erase(k);
}
else if(c=='l')
{
//for(int i=0;i<20;i++)
//box.insert(i+1);
box = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
}
else if(c=='m')
{
box.clear();
}
}
}
계속 시간 초과가 나서 당황했다. n이 최대 300만으로 크고 set의 삽입/삭제/탐색에 logN의 시간복잡도를 가지므로 시간이 빠듯한 듯 했다. 그래도 70%가까이에서 시간 초과를 받았기에 이곳 저곳에서 시간을 조금씩이라도 줄여 통과시켰다.
728x90
'Algorithm' 카테고리의 다른 글
[백준/C++] 2060 바이러스 (S3) (1) | 2023.10.17 |
---|---|
[백준/C++] 17219 비밀번호 찾기 (S4) (1) | 2023.10.17 |
[백준/C++] 11724 연결 요소의 개수 (S2) (0) | 2023.10.17 |
[백준/C++] 17103 골드바흐 파티션 (S2) (0) | 2023.10.17 |
[백준/C++] 2294 동전2 (G5) (1) | 2023.10.17 |