[백준] 1269. 대칭 차집합
문제 링크
풀이 과정
HashSet을 사용했습니다.
st = new StringTokenizer(br.readLine());
for (int i = 0; i < a; i++) set.add(st.nextToken());
st = new StringTokenizer(br.readLine());
for (int i = 0; i < b; i++) if (set.contains(st.nextToken())) dupCnt++;
System.out.println(a + b - 2 * dupCnt);
먼저 입력으로 주어진 집합 A의 요소를 set
에 모두 담은 뒤, 집합 B의 각 요소가 set
에 존재하면 그 개수를 dupCnt
에 세어, 집합 A의 요소 갯수와 집합 B의 요소 갯수를 더한 뒤, 겹치는 개수의 두 배 만큼을 빼줬습니다.
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
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));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
HashSet<String> set = new HashSet<>();
int dupCnt = 0;
st = new StringTokenizer(br.readLine());
for (int i = 0; i < a; i++) set.add(st.nextToken());
st = new StringTokenizer(br.readLine());
for (int i = 0; i < b; i++) if (set.contains(st.nextToken())) dupCnt++;
System.out.println(a + b - 2 * dupCnt);
}
}
댓글남기기