728x90
N, M = map(int, input().split())
a = set()
b = set()
for i in range(N):
a.add(input())
for i in range(M):
b.add(input())
c = sorted(list(a.intersection(b)))
print(len(c))
print('\n'.join(c))
간단하지만 알아둘 필요가 있는 문제.
딱 봤을때부터 교집합 구하는 문제였는데 역시 이미 함수가 있었다.
a.intersection(b) => 교집합 (= a & b)
+ a.union(b) => 합집합 (= a | b)
+ a.difference(b) => 차집합 (= a - b)
글구 sort 방법이 두가지가 있는데
list.sort()과
c = sorted(list)가 있읍니다..
이를 통해 코드를 잘 줄여보쟈.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
백준 1158 요세푸스 문제 - 큐 (0) | 2022.09.03 |
---|---|
백준 10816 숫자카드 2 - 딕셔너리 (0) | 2022.09.02 |
백준 2609 최소공배수 최대공약수 (0) | 2022.09.02 |
백준 18870 좌표 압축 - 정렬 (0) | 2022.08.31 |
백준 10610 30 그리디 (0) | 2022.08.30 |