Baekjoon 11723.집합 c++ [Silver V]

2024. 12. 13. 16:02·Baekjoon/Silver
728x90
반응형

2가지 방법

  1. 문제에서 s 배열의 크기가 한정되어 있으므로 배열을 사용해서 해결
  2. 비트마스크

배열

#include <iostream>
using namespace std;

int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int M;
cin >> M;
int s[21] = {0}; 

while (M--)
{
    string cmd;
    int x = 0;
    cin >> cmd;

    if (cmd == "add")
    {
        cin >> x;
        s[x] = 1; 
    }
    else if (cmd == "remove")
    {
        cin >> x;
        s[x] = 0;
    }
    else if (cmd == "check")
    {
        cin >> x;
        cout << (s[x] ? "1\n" : "0\n");
    }
    else if (cmd == "toggle")
    {
        cin >> x;
        s[x] = !s[x];
    }
    else if (cmd == "all")
    {
        fill(s + 1, s + 21, 1); 
    }
    else if (cmd == "empty")
    {
        fill(s + 1, s + 21, 0); 
    }
}
return 0;
}

 

비트마스크

https://velog.io/@hunbot/%EB%B9%84%ED%8A%B8%EB%A7%88%EC%8A%A4%ED%81%AC

 

#include

using namespace std;

int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int M;
cin >> M;
unsigned int bitmask = 0;

while (M--)
{
    string cmd;
    int x = 0;
    cin >> cmd;

    if (cmd == "add")
    {
        cin >> x;
        bitmask |= (1 << (x - 1));
    }
    else if (cmd == "remove")
    {
        cin >> x;
        bitmask &= ~(1 << (x - 1));
    }
    else if (cmd == "check")
    {
        cin >> x;
        cout << ((bitmask & (1 << (x - 1))) ? "1\n" : "0\n");
    }
    else if (cmd == "toggle")
    {
        cin >> x;
        bitmask ^= (1 << (x - 1));
    }
    else if (cmd == "all")
    {
        bitmask = (1 << 20) - 1;
    }
    else if (cmd == "empty")
    {
        bitmask = 0;
    }
}
return 0;
}

 

728x90
반응형
저작자표시 (새창열림)

'Baekjoon > Silver' 카테고리의 다른 글

Baekjoon 11399.ATM c++[Silver IV]  (0) 2024.12.22
Baekjoon 1764.듣보잡 c++[Silver IV]  (1) 2024.12.18
Baekjoon 1874.스택 수열 c++ [Silver II]  (1) 2024.12.09
Baekjoon 2839.ŠEĆER c++ [Silver IV]  (1) 2024.12.09
Baekjoon 1920.수 찾기 c++ [Silver V]  (0) 2024.12.09
'Baekjoon/Silver' 카테고리의 다른 글
  • Baekjoon 11399.ATM c++[Silver IV]
  • Baekjoon 1764.듣보잡 c++[Silver IV]
  • Baekjoon 1874.스택 수열 c++ [Silver II]
  • Baekjoon 2839.ŠEĆER c++ [Silver IV]
Hun-bot
Hun-bot
IT를 중심으로 다양한 것
  • Hun-bot
    로봇이 만드는 눈사람
    Hun-bot
  • 전체
    오늘
    어제
    • All Article (128)
      • Programmers (6)
        • TIP (1)
        • SQL (2)
        • LV1 (1)
        • LV2 (2)
        • LV3 (0)
      • Baekjoon (31)
        • Bronze (10)
        • Silver (19)
        • Gold (2)
        • Platinum (0)
        • Diamond (0)
      • Leetcode (0)
        • Easy (0)
        • Medium (0)
        • Hard (0)
        • SQL (0)
      • 알고리즘(Algorithm) (42)
      • JavaScript (40)
      • Linux (7)
      • JSP (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      리눅스 #입문
      JSP #Vscode #톰켓 #Tomcat #Java #Web #jdk
      JS #정규표현식
      SQL
      알고리즘 #Algorithm
      자바스크립트 #연습문제
      자바스크립트
      JS #javascript #객체 #Object
      고득점 Kit
      오블완
      JS #JavaScript #프로그래머스 #카카오
      JS #JavaScript #프로그래머스 #알고리즘
      c++
      async await #js #문법 #자바스크립트 #비동기
      알고리즘
      Javascript
      프로그래머스
      리눅스
      JavaScript #Set #Collection
      JS #클래스
      Python #알고리즘
      Vue #Vue.js #정리
      LeetCode #JS #Javascript #Algorithm
      티스토리챌린지
      백준
      Programmers
      JS #프로그래머스 #숫자의표현 #알고리즘
      프로그래머스 #자바스크립트 #JS
      Algorithm
      BaekJoon
    • 최근 댓글

    • hELLO· Designed By정상우.v4.10.3
    Hun-bot
    Baekjoon 11723.집합 c++ [Silver V]
    상단으로

    티스토리툴바

    티스토리툴바