알고리즘
[백준][Python 파이썬] 1764번 듣보잡
룰루루
2023. 11. 24. 23:27
파이썬의 딕셔너리 자료구조형은 해시 테이블(hash table)으로 구현되어 있는데, hash table의 경우 일반적인 리스트보다 내부 원소에 더 빠르게 접근할 수 있다.
따라서 never_listen 변수를 리스트로 선언하지 않고 딕셔너리로 선언해서 M번의 루프를 돌 때 해당 이름이 never_listen 내부에 있는 값인지 더 빨리 확인할 수 있도록 하였다.
import sys
from collections import defaultdict
input = sys.stdin.readline
N, M = map(int, input().split())
never_listen = defaultdict(lambda: False)
never_listen_and_see = []
for _ in range(N):
name = input().strip()
never_listen[name] = True
for _ in range(M):
name = input().strip()
if never_listen[name]:
never_listen_and_see.append(name)
never_listen_and_see.sort()
print(len(never_listen_and_see))
for nlas in never_listen_and_see:
print(nlas)