파이썬의 딕셔너리 자료구조형은 해시 테이블(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)
'알고리즘' 카테고리의 다른 글
[백준][Python 파이썬] 1966번 프린터 큐 (2) | 2023.11.28 |
---|---|
[백준][Python 파이썬] 1874번 스택 수열 (0) | 2023.11.28 |
[백준][Python 파이썬] 11723번 집합 (0) | 2023.11.24 |
[백준] 1012번 유기농 배추 (Python 파이썬) (2) | 2023.11.24 |
[백준] 1003번 피보나치 함수 (Python 파이썬) (1) | 2023.11.24 |