본문 바로가기
백준

[백준] 1269번 : 대칭 차집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 11. 23.
728x90
반응형

3.

 

 

1269번: 대칭 차집합

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

www.acmicpc.net

 

1. 문제 설명

'

2. 풀이과정

해당 문제는 두 집합 A, B의 대칭 차집합 원소의 개수를 구하는 문제이다.

집합은 원소가 중복될 수 없기 때문에 집합의 연산을 수행할 때 set() 함수를 활용해 중복을 제거해 주고 연산을 수행한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 두 집합의 원소 개수를 입력받는다. a, b = map(int, sys.stdin.readline().split())
  3. 집합 A의 각 원소를 입력받아 리스트로 저장한다. A = list(map(int, sys.stdin.readline().split()))
  4. 집합 B의 각 원소를 입력받아 리스트로 저장한다. B = list(map(int, sys.stdin.readline().split()))
  5. A - B의 연산을 수행하고 그 결과를 저장한다. li1 = set(A) - set(B)
  6. B - A의 연산을 수행하고 그 결과를 저장한다. li2 = set(B) - set(A)
  7. 수행한 두 연산의 결과를 합집합 하여 저장한다. result = li1 | li2
  8. 최종 대칭 차집합의 연산 결과의 원소 개수를 출력한다. print(len(result))
반응형

3. 소스코드

import sys

a, b = map(int, sys.stdin.readline().split())

A = list(map(int, sys.stdin.readline().split()))
B = list(map(int, sys.stdin.readline().split()))
    
li1 = set(A) - set(B)
li2 = set(B) - set(A)
result = li1 | li2
print(len(result))
728x90
반응형