ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 집합 - 11723
    백준 2020. 3. 6. 18:33
    반응형
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int s = 0;
    
    void add(int num) {
    	s |= (1 << num);
    }
    
    void remove(int num) {
    	s &= ~(1 << num);
    }
    
    void check(int num) {
    	if (s & (1 << num)) {
    		cout << "1" << '\n';
    		return;
    	}
    	cout << "0" << '\n';
    	return;
    }
    
    void toggle(int num) {
    	s ^= (1 << num);
    }
    
    void all() {
    	s = (2 << 21) -1;
    }
    
    void empty() {
    	s = 0;
    }
    
    int main() {
    	ios_base::sync_with_stdio(false);
    	cin.tie(NULL);
    	cout.tie(NULL);
    	
    	int m;
    	cin >> m;
    
    	string input;
    	int inputNum;
    	for (int i = 0; i < m; i++) {
    		cin >> input;
    
    		if (input.compare("add") == 0) {
    			cin >> inputNum;
    			add(inputNum);
    		}
    		else if (input.compare("remove") == 0) {
    			cin >> inputNum;
    			remove(inputNum);
    		}
    		else if (input.compare("check") == 0) {
    			cin >> inputNum;
    			check(inputNum);
    		}
    		else if (input.compare("toggle") == 0) {
    			cin >> inputNum;
    			toggle(inputNum);
    		}
    		else if (input.compare("all") == 0) {
    			all();
    		}
    		else if (input.compare("empty") == 0) {
    			empty();
    		}
    	}
    
    	return 0;
    }

    비트마스크, 동적계획법과 관련된 문제였어요 

     

    비트마스크 공부하면서 풀어본 기본적인 문제인데 이진법 사용이 서툴렀던게 느껴졌어요 ㅠㅠ

     

    c++ 문법도 많이 잊어버려서 쒯...

     

    제출했더니 시간초과가 나서 왜그런가 했더니 출력할 때 \n이랑 string 비교할 때 compare로 바꿔주니 정답처리 되네

     

    요!

    반응형

    '백준' 카테고리의 다른 글

    [백준] 큐2 - 18258  (0) 2020.07.25
    [백준] 1로 만들기 - 1463  (0) 2020.03.16
    부분 합 - 1806  (0) 2020.03.16

    댓글

Designed by Tistory.