본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 - 1269번: 대칭 차집합 [Java]

문제: https://www.acmicpc.net/problem/1269

 

1269번: 대칭 차집합

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

www.acmicpc.net

1. 코드

import java.util.*;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		
		Set <String> setA = new HashSet<>();
		while(A-- > 0)
			setA.add(sc.next());
		
		Set <String> setB = new HashSet<>();
		while(B-- > 0)
			setB.add(sc.next());
		
		Set <String> tempA = new HashSet<>();
		tempA.addAll(setA);
		
		tempA.removeAll(setB);
		setB.removeAll(setA);
		System.out.println(tempA.size() + setB.size());
	}
}

2. 설명

removeAll 메서드를 사용하여 차집합을 구현하여 크기만 더하여 해결

3. 정리

  1. addAll() : 합집합
  2. retainAll() : 교집합
  3. removeAll() : 차집합
  4. containsAll() : 부분집합