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);
}
}
'백준' 카테고리의 다른 글
백준 1120 문자열(Java) (0) | 2023.01.27 |
---|---|
백준 1057 토너먼트(Java) (0) | 2023.01.27 |
백준 1748 수 이어 쓰기 1(Java) (0) | 2023.01.27 |
백준 9613 GCD 합(Java) (0) | 2023.01.27 |
백준 3036 링(Java) (0) | 2023.01.27 |