알고리즘 공부(C++)

백준 1764 듣보잡 - 차집합

혀니리리 2022. 9. 2. 18:03
728x90

1764번: 듣보잡 (acmicpc.net)

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

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