본문 바로가기
프로그램

[파이썬] 문제 : 합집합,교집합,차집합,여집합

by 오디세이99 2022. 11. 20.
728x90
반응형

문제

집합 메소드를 사용해서 
1~20까지의 난수 5개를 얻어 각각 집합 A,B를 만들고 집합 A,B의 합집합,교집합,차집합,여집합을 출력

import random
data = [i for i in range(1, 21)]              # [1,2,3...20] 리스트를 만듬

SETA = random.sample(data, 5)                  # 1~20까지의 수 중 임의의 수 5개를 지정 함
SETB = random.sample(data, 5)                  # 1~20까지의 수 중 임의의 수 5개를 지정 함
# SETA = {a for a in SETA}                      # 리스트를 set로 만듬
# SETB = {a for a in SETB}
SETA = set(SETA)                               # 집합변수로 만듬
SETB = set(SETB)                               # 집합변수로 만듬
ALL = set(data)                                # 여집합을 위해 전체집합을 집합변수로 만듬

print('합집합 : SETA | SETB = ',SETA | SETB)
print('교집합 : SETA & SETB = ',SETA & SETB)
print('차집합 : SETA - SETB = ',SETA - SETB)
print('여집합 : 전체 - SETB = ',ALL - (SETA | SETB))    # 전체에서 SETA, SETB의 합집합을 빼서 계산

결과

합집합 : SETA | SETB =  {3, 5, 8, 11, 12, 13, 14, 16, 17, 18}
교집합 : SETA & SETB =  set()
차집합 : SETA - SETB =  {3, 5, 13, 17, 18}
여집합 : 전체 - SETB =  {1, 2, 4, 6, 7, 9, 10, 15, 19, 20}
728x90
반응형

댓글