BOJ 11723. ์งํฉ
๐โโ๏ธ[Silver V] ์งํฉ - 11723
์ฑ๋ฅ ์์ฝ
๋ฉ๋ชจ๋ฆฌ: 2024 KB, ์๊ฐ: 708 ms
๋ถ๋ฅ
๋นํธ๋ง์คํน, ๊ตฌํ
์ ์ถ ์ผ์
2023๋ 12์ 21์ผ 00:55:24
๋ฌธ์ ์ค๋ช
๋น์ด์๋ ๊ณต์งํฉ S๊ฐ ์ฃผ์ด์ก์ ๋, ์๋ ์ฐ์ฐ์ ์ํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
add x
: S์ x๋ฅผ ์ถ๊ฐํ๋ค. (1 โค x โค 20) S์ x๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ๋ฌด์ํ๋ค.remove x
: S์์ x๋ฅผ ์ ๊ฑฐํ๋ค. (1 โค x โค 20) S์ x๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ๋ฌด์ํ๋ค.check x
: S์ x๊ฐ ์์ผ๋ฉด 1์, ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค. (1 โค x โค 20)toggle x
: S์ x๊ฐ ์์ผ๋ฉด x๋ฅผ ์ ๊ฑฐํ๊ณ , ์์ผ๋ฉด x๋ฅผ ์ถ๊ฐํ๋ค. (1 โค x โค 20)all
: S๋ฅผ {1, 2, ..., 20} ์ผ๋ก ๋ฐ๊พผ๋ค.empty
: S๋ฅผ ๊ณต์งํฉ์ผ๋ก ๋ฐ๊พผ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํํด์ผ ํ๋ ์ฐ์ฐ์ ์ M (1 โค M โค 3,000,000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ์ํํด์ผ ํ๋ ์ฐ์ฐ์ด ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
check
์ฐ์ฐ์ด ์ฃผ์ด์ง๋๋ง๋ค, ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
๐ํ์ด
container๋ก ๋ฒกํฐ๋ฅผ ์ฌ์ฉํด์ ํ์๋ค.
x์ ๊ฐ์ด 1<=20์ด๋ฏ๋ก ์ ์ฒด๋ฅผ ์ํํด๋ ์๊ฐ ์ ์ฝ์ด ๊ฑธ๋ฆฌ์ง ์์๊ฑฐ๋ผ๊ณ ํ๋จํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฐ์ ๊ฐ์ด ๋ ๋ฒ ๋ค์ด๊ฐ ์ผ์ด ์์ผ๋ฏ๋ก ๊ฐ ์ธ๋ฑ์ค์์ ๊ฐ์ด ์๋ ์๋๋ก ํ๋จํด์ฃผ์๋ค.
vector<int> vec;
int n;
void solve()
{
cin >> n;
vec = vector<int>(21);
while (n > 0)
{
string str;
cin >> str;
if (str == "add")
{
int temp;
cin >> temp;
if (vec[temp] == 0)
vec[temp]++;
}
else if (str == "remove")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
vec[temp]--;
}
else if (str == "check")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
cout << 1 << '\n';
else
cout << 0 << '\n';
}
else if (str == "toggle")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
vec[temp]--;
else
vec[temp]++;
}
else if (str == "all")
{
for (int i = 1; i <= 20; ++i)
vec[i] = 1;
}
else if (str == "empty")
{
for (int i = 1; i <= 20; ++i)
vec[i] = 0;
}
n--;
}
}
๐์ ์ฒด ์ฝ๋
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> vec;
int n;
void solve()
{
cin >> n;
vec = vector<int>(21);
while (n > 0)
{
string str;
cin >> str;
if (str == "add")
{
int temp;
cin >> temp;
if (vec[temp] == 0)
vec[temp]++;
}
else if (str == "remove")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
vec[temp]--;
}
else if (str == "check")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
cout << 1 << '\n';
else
cout << 0 << '\n';
}
else if (str == "toggle")
{
int temp;
cin >> temp;
if (vec[temp] == 1)
vec[temp]--;
else
vec[temp]++;
}
else if (str == "all")
{
for (int i = 1; i <= 20; ++i)
vec[i] = 1;
}
else if (str == "empty")
{
for (int i = 1; i <= 20; ++i)
vec[i] = 0;
}
n--;
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
//freopen("input.txt", "rt", stdin);
solve();
return 0;
}