백준 11723 자바

손찬호·2024년 8월 28일
0

알고리즘

목록 보기
87/91

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

풀이 아이디어

Switch문을 사용해서
명령어에 맞는 동작을 처리한다.
이때 BufferedReader를 사용해서 출력할 값을 한 번에 모아서 출력한다.

풀이 코드

import java.util.*;
import java.io.*;

public class _11723 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        Integer total = Integer.parseInt(br.readLine());
        StringTokenizer st;
        ArrayList<Integer> S = new ArrayList<>();
        for (int i=0; i<total;i++){
            st = new StringTokenizer(br.readLine());
            String input1 = st.nextToken();
            Integer input2=0;
            if(st.hasMoreTokens()){
                input2 = Integer.parseInt(st.nextToken());
            }
            switch (input1) {
                case "all":
                    S = new ArrayList<>();
                    for (int j=1;j<=20;j++){
                        S.add(j);
                    }
                    break;

                case "empty":
                    S = new ArrayList<>();
                    break;

                case "add": 
                    // 포함하고 있지 않으면서 input2가 유효한 값이면
                    if(!S.contains(input2) & input2!=0){
                        S.add(input2);
                    }
                    break;

                case "remove":
                    // 포함하고 있으면서 input2가 유효한 값이면
                    if(S.contains(input2) & input2!=0){
                        S.remove(input2);
                    }
                    break;
                    
                case "check":
                    // 포함하고 있으면서 input2가 유효한 값이면
                    if(S.contains(input2) & input2!=0){
                        bw.write(1+"\n");
                    }
                    else{
                        bw.write(0+"\n");
                    }
                    break;
                    
                case "toggle":
                    // 포함하고 있지 않으면서 input2가 유효한 값이면
                    if(!S.contains(input2) & input2!=0){
                        S.add(input2);
                    }
                    // 포함하고 있으면서 input2가 유효한 값이면
                    else if(S.contains(input2) & input2!=0){
                        S.remove(input2);
                    }

                default:
                    break;
            }
        }

        bw.flush();
        bw.close();
        br.close();
    }    
}
profile
매일 1%씩 성장하려는 주니어 개발자입니다.

0개의 댓글

관련 채용 정보