백준 11723번 집합(java)

마뇽미뇽·2024년 7월 17일
0

알고리즘 문제풀이

목록 보기
83/165

1.문제

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

2.풀이

집합일때는 set을 사용한다.
hashset은 중복을 허용하지 않기 때문에 add와 remove에서 있다면에 대한 조건은 구현할 필요가 없다.

3.코드

import java.io.*;
import java.util.HashSet;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringBuilder sb = new StringBuilder();
        HashSet<Integer> set = new HashSet<>();

        int n = Integer.parseInt(br.readLine());

        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());

            String s = st.nextToken();
            int x;

            if (s.equals("add")) {
                x = Integer.parseInt(st.nextToken());
                set.add(x);
            } else if (s.equals("remove")) {
                x = Integer.parseInt(st.nextToken());
                set.remove(x);
            } else if (s.equals("check")) {
                x = Integer.parseInt(st.nextToken());
                if (set.contains(x)) {
                    sb.append(1).append("\n");
                } else {
                    sb.append(0).append("\n");
                }
            } else if (s.equals("toggle")) {
                x = Integer.parseInt(st.nextToken());
                if (!set.contains(x)) {
                    set.add(x);
                } else {
                    set.remove(x);
                }
            } else if (s.equals("all")) {
                set = new HashSet<>();
                for (int j = 1; j <= 20; j++) {
                    set.add(j);
                }
            } else if (s.equals("empty")) {
                set.clear();
            }
        }
        bw.write(sb.toString());
        bw.flush();
        bw.close();
    }
}```
profile
Que sera, sera

0개의 댓글