백준
백준 1269 대칭 차집합(Java)
Park DJ
2023. 1. 27. 20:03
https://www.acmicpc.net/problem/1269
1269번: 대칭 차집합
첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어
www.acmicpc.net
해석 및 팁
먼저 대칭차집합 원소의 개수 공식은 a + b - 2(a∩b) 이므로 HashMap을 사용하여 a와 b의 교집합의 개수만 찾으면 쉽게 풀 수 있습니다. 먼저 a의 원소를 key에 개수를 value에 저장한 후 b의 원소가 존재하면 count++을 하면 됩니다. 마지막으로 a와 b의 개수의 합과 교집합의 2배를 빼주면 됩니다.
Java 코드
import java.util.Scanner;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<Integer, Integer> map = new HashMap<>();
int a = sc.nextInt();
int b = sc.nextInt();
int count = 0;
for(int i = 0; i < a; i++) {
int num = sc.nextInt();
map.put(num, 1);
}
for(int i = 0; i < b; i++) {
int num = sc.nextInt();
if(map.containsKey(num)) count++;
}
System.out.println(a+b-2*count);
}
}