-
[백준-11723] 집합 - Java공부/백준 2022. 7. 5. 11:45728x90
https://www.acmicpc.net/problem/11723
백준 11723번 집합 자바 풀이
난이도: 실버5
HashSet을 이용하여 풀었다.
add일 경우 set.add(),
remove일 경우 set.contains()을 통해 들어 있는지 확인한 후, set.remove를 통해 지운다.
check일 경우, set.contains()을 통해 들어 있는지 확인후, StringBuilder에 추가한다.
toggle인 경우 set.contains()을 통해 들어 있으면 지우고, 없으면 추가한다.
all인 경우 1~20까지 반복문을 통해 set.add()를 하여 추가한다.
empty인 경우 set.clear()를 통해 HashSet을 비운다.
처음에는 check인 경우마다 print를 하였지만 시간 초과가 발생하여,
StringBuilder를 이용하여 마지막에 출력하였다.
코드
import java.util.*;public class back11723 {public static void main(String args[]){Scanner scanner= new Scanner(System.in);StringBuilder sb=new StringBuilder();int m=scanner.nextInt();scanner.nextLine();HashSet<Integer> set = new HashSet<>();for(int i=0;i<m;i++){String arr[]=scanner.nextLine().split(" ");switch(arr[0]){case "add":set.add(Integer.parseInt(arr[1]));break;case "remove":if(set.contains(Integer.parseInt(arr[1]))){set.remove(Integer.parseInt(arr[1]));}break;case "check":if(set.contains(Integer.parseInt(arr[1]))){sb.append(1).append("\n");}else{sb.append(0).append("\n");}break;case "toggle":if(set.contains(Integer.parseInt(arr[1]))){set.remove(Integer.parseInt(arr[1]));}else{set.add(Integer.parseInt(arr[1]));}break;case "all":for(int j=1;j<21;j++){set.add(j);}break;case "empty":set.clear();break;}}System.out.println(sb);}}728x90반응형'공부 > 백준' 카테고리의 다른 글
[백준-11726] 2xn 타일링 - Java (0) 2022.07.13 [백준-9095] 1, 2, 3 더하기 - Java (0) 2022.07.12 [백준-2630] 색종이 만들기 - Java (0) 2022.07.02 [백준-2805] 나무 자르기 - Java (0) 2022.07.01 [백준-2559] 수열 - Java (0) 2022.06.30