BOJ/Silver

[BOJ] #1269 대칭 차집합

Opal1031 2026. 4. 12. 16:25

대칭 차집합

백준 #1269


📌 문제

예제 입력

3 5
1 2 4
2 3 4 5 6

예제 출력

4

📌 풀이

Logic

  • 집합 A, B의 원소의 개수 입력
  • 집합 A, B의 원소 입력
  • 교집합 구하기
  • A + B - (교집합 * 2) 출력
# 변수명
A, B : 각 집합의 원소 개수
set_A, set_B : 집합 A, B
common_set : 교집합

Python

import sys

A, B = map(int, sys.stdin.readline().split())

set_A = list(map(int, sys.stdin.readline().split()))
set_B = list(map(int, sys.stdin.readline().split()))

common_set = list(set(set_A) & set(set_B))

print(A + B - (len(common_set) * 2))

✏️ 새로운 내용

set() 이모저모

set() 함수에서는 교집합(&), 합집합(|), 차집합(-) 연산이 가능함

  • 이전에 set()을 이용한 문제 풀이를 한 적이 있었음
  • 백준 #1822

📚 회고

💡 set() 함수

  • '이산수학' 수업을 통해 set() 함수를 단순하게 사용해 본 경험만 있었고, 이를 이용해서 이전에 문제를 해결했었다.
  • '&' 연산자를 통해 교집합을 바로 구하는 기능을 제공하고 있었다.

🛠️ set() 함수에서는 len() 함수가 적용되지 않는다

  • list형으로 변환한 뒤에 사용해야 한다.

💡 set() 함수는 대칭 차집합에 대한 연산을 기본 제공하고 있었다..!

  • '^' 연산자를 이용하면 대칭 차집합을 바로 출력해준다.
    print(len(set_A ^ set_B))

'BOJ > Silver' 카테고리의 다른 글

[BOJ] #6571 피보나치 수의 개수  (0) 2026.04.12
[BOJ] #1463 1로 만들기  (0) 2026.04.12
[BOJ] #1312 소수  (0) 2026.04.12
[BOJ] #1254 펠린드롬 만들기  (0) 2026.04.12
[BOJ] #1929 소수 구하기  (0) 2026.04.12