πŸ“ Coding Test Study/Algorithm Problem

[C++][Baekjoon][λΉ„νŠΈλ§ˆμŠ€ν¬] 11723번 μ§‘ν•©

ibelieveinme 2022. 5. 8. 11:07
728x90

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

 

11723번: μ§‘ν•©

첫째 쀄에 μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” μ—°μ‚°μ˜ 수 M (1 ≤ M ≤ 3,000,000)이 μ£Όμ–΄μ§„λ‹€. λ‘˜μ§Έ 쀄뢀터 M개의 쀄에 μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” 연산이 ν•œ 쀄에 ν•˜λ‚˜μ”© μ£Όμ–΄μ§„λ‹€.

www.acmicpc.net

#include <string>
#include <iostream>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    int calculationNum, bit = 0, num; // bit μ΄ˆκΈ°ν™” ν•„μˆ˜
    string calculationString;

    cin >> calculationNum;
    for (int i = 0; i < calculationNum; i++) {
        cin >> calculationString;
        if (calculationString == "add") {
            cin >> num;
            bit |= (1 << num);
        }
        else if (calculationString == "remove") {
            cin >> num;
            bit &= ~(1 << num);
        }
        else if (calculationString == "check") {
            cin >> num;
            if (bit & (1 << num)) cout << 1 << "\n";
            else cout << 0 << "\n";
        }
        else if (calculationString == "toggle") {
            cin >> num;
            bit ^= (1 << num);
        }
        else if (calculationString == "all") {
            bit = (1 << 21) - 1;
        }
        else if (calculationString == "empty") {
            bit = 0;
        }
    }
    return 0;
}
728x90