#문제
https://www.acmicpc.net/problem/11723
#풀이
bitmask 문제로 x의 범위가 20까지이기 때문에 21사이즈의 배열을 생성하여
1~20의 값을 1과 0으로 저장할 수 있게끔 하였다.
연산의 수가 최대 300만건이 될 수 있기 때문에 출력을 유의해야 한다.
#소스코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class BOJ11723 {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int M = Integer.parseInt(br.readLine());
int[] arr = new int[21];
int idx = 0;
String command = "";
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = null;
for(int i = 0; i < M; i++){
st = new StringTokenizer(br.readLine());
command = st.nextToken();
if(st.hasMoreTokens()){
idx = Integer.parseInt(st.nextToken());
}
switch(command){
case "add" : arr[idx] = 1;
break;
case "remove": arr[idx] = 0;
break;
case "check": bw.write(arr[idx] + "\n");
break;
case "toggle": arr[idx] = arr[idx] == 1 ? 0 : 1;
break;
case "all" : Arrays.fill(arr, 1);
break;
case "empty" : Arrays.fill(arr, 0);
break;
}
}
bw.flush();
}
}
'💡Problem Solving > BOJ' 카테고리의 다른 글
[BOJ 6549] 히스토그램에서 가장 큰 직사각형 (Java) (0) | 2021.10.25 |
---|---|
[BOJ 2580] 스도쿠 (Java) (0) | 2021.10.25 |
[BOJ 4386] 별자리 만들기 (Java) (0) | 2021.10.24 |
[BOJ 3584] 가장 가까운 공통 조상(Java) (0) | 2021.10.24 |
[BOJ 11437] LCA (Java) (0) | 2021.10.24 |