입력 코드
#include<stdio.h>
#include<stdbool.h>
#include<ctype.h>
int main(void)
{
bool S[21]={false, };
int M;
scanf("%d", &M);
getchar();
for(int m=0;m<M;m++)
{
int x;
char command[10]={'\0', };
getchar();
fgets(command,sizeof(command),stdin);
switch(command[0])
{
case 'd': //add
x=isdigit(command[4])?10*(command[3]-'0')+command[4]-'0':command[3]-'0';
S[x]=true;
break;
case 'e': //remove
x=isdigit(command[7])?10*(command[6]-'0')+command[7]-'0':command[6]-'0';
S[x]=false;
break;
case 'h': //check
x=isdigit(command[6])?10*(command[5]-'0')+command[6]-'0':command[5]-'0';
printf("%d\n", S[x]);
break;
case 'o': //toggle
x=isdigit(command[7])?10*(command[6]-'0')+command[7]-'0':command[6]-'0';
S[x]=S[x]==true?false:true;
break;
case 'l': //all
for(x=1;x<21;x++)
S[x]=true;
break;
case 'm': //empty
for(x=1;x<21;x++)
S[x]=false;
break;
}
}
return 0;
}
출처 www.acmicpc.net/source/24158179
코드 설명
#비트마스킹
문제 출처
'C' 카테고리의 다른 글
#104. [백준_C언어] 10974 : 모든 순열 \ 브루트포스 알고리즘 (0) | 2021.03.07 |
---|---|
#103. [백준_C언어] 1094 : 막대기 \ 비트마스킹 (0) | 2021.02.27 |
#101. [백준_C언어] 15649 : N과 M (1) \ 백트래킹 (0) | 2021.02.26 |
#100. [백준_C언어] 14888 : 연산자 끼워넣기 \ 백트래킹 (0) | 2021.02.26 |
#99. [백준_C언어] 2309 : 일곱 난쟁이 \ 브루트포스 알고리즘 (0) | 2021.02.25 |