개발/algorithm
[백준 1764번] 듣보잡 - python
zzi_on2
2022. 2. 14. 00:50
문제 링크
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
풀이
- defaultdict 사용
- 이름을 key로 하여 등장했을 때 value 값 + 1
- 듣도 보도 못한 사람은 value 값이 2 이므로, dic을 for 문으로 value 값이 2인 key를 answer에 삽입, cnt + 1
- 다른 사람의 풀이를 찾아보니 set을 사용한 경우가 많았다.
from collections import defaultdict
n, m = map(int,input().split())
dic = defaultdict(int)
for _ in range(n):
s = input()
dic[s] += 1
for _ in range(m):
s = input()
dic[s] += 1
# 사람 이름 저장
answer = []
# 총 사람 수 저장
cnt = 0
for i in dic:
if dic[i]== 2 :
answer.append(i)
cnt += 1
print(cnt)
# 사전 순으로 정렬
answer.sort()
for i in answer:
print(i)