본문 바로가기

Java/백준

[JAVA] 백준 1269 대칭 차집합

1269번: 대칭 차집합 (acmicpc.net)

 

1269번: 대칭 차집합

첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어

www.acmicpc.net

 

 

풀이 과정 

 

- n개의 수를 HashSet에 추가 

- m개의 수 만큼 입력받고 입력받은 수가 이미 HashSet에 포함되어 있는 숫자라면 그 숫자를 HashSet에서 제거 

- 포함되어 있지 않다면 HashSet에 추가

- 위의 과정 완료 후 HashSet의 크기 출력

 

정답 

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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));
        
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        HashSet<Integer> set = new HashSet<Integer>();
        
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        
        st = new StringTokenizer(br.readLine());
        for(int i=0; i<n; i++)
        {
            set.add(Integer.parseInt(st.nextToken()));
        }
        
        st = new StringTokenizer(br.readLine());
        for(int i=0; i<m; i++)
        {
            int key = Integer.parseInt(st.nextToken());
            
            if(set.contains(key))
            {
                set.remove(key);
            }
            else
            {
                set.add(key);
            }
        }
        
        bw.write(set.size()+"");
        
        bw.flush();
        bw.close();
    }
        
}

 

 

'Java > 백준' 카테고리의 다른 글

[JAVA] 백준 18258 큐 2  (0) 2024.02.14
[JAVA] 백준 11478 서로 다른 부분 문자열의 개수  (0) 2024.02.14
[JAVA] 백준 13909 창문 닫기  (0) 2024.02.13
[JAVA] 백준 1764 듣보잡  (0) 2024.02.13
[JAVA] 백준 10816 숫자 카드 2  (1) 2024.02.13