알고리즘
[백준] 1822 - 차집합
inthyes
2023. 12. 11. 00:00
https://www.acmicpc.net/problem/1822
1822번: 차집합
첫째 줄에는 집합 A의 원소의 개수 n(A)와 집합 B의 원소의 개수 n(B)가 빈 칸을 사이에 두고 주어진다. (1 ≤ n(A), n(B) ≤ 500,000)이 주어진다. 둘째 줄에는 집합 A의 원소가, 셋째 줄에는 집합 B의 원소
www.acmicpc.net
문제
몇 개의 자연수로 이루어진 두 집합 A와 B가 있다. 집합 A에는 속하면서 집합 B에는 속하지 않는 모든 원소를 구하는 프로그램을 작성하시오.
소스코드
from sys import stdin
a, b = map(int,stdin.readline().split())
A = set(map(int,stdin.readline().split()))
B = set(map(int,stdin.readline().split()))
res = A - B
if res:
print(len(res))
print(*sorted(list(res)))
else:
print(0)
소스코드 설명
1. set으로 A, B를 입력받아 연산을 가능하게 한다.
2. *sorted(list(res)) : 리스트로 변경하여 정렬이 가능하게 한다. 이 때 "*"을 제외하면 리스트 자체가 출력된다.
*sorted(list(res))를 for문으로 돌려 출력해도 위 사용법이 시간초과는 되지 않지만 간결하고 시간 단축에 효과가 있다.