파이썬의 딕셔너리 자료구조형은 해시 테이블(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)

 

 

+ Recent posts