38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
# 가희와 키워드
|
|
|
|
import sys
|
|
|
|
input = sys.stdin.readline
|
|
|
|
def solution():
|
|
n, m = map(int, input().rstrip().split())
|
|
|
|
memo = set()
|
|
|
|
for _ in range(n):
|
|
memo.add(input().rstrip())
|
|
|
|
for _ in range(m):
|
|
for keyword in input().rstrip().split(","):
|
|
if keyword in memo:
|
|
memo.remove(keyword)
|
|
|
|
print(len(memo))
|
|
|
|
return
|
|
|
|
|
|
solution()
|
|
|
|
"""
|
|
걸린 시간: 20분
|
|
|
|
시간 복잡도: 한 글에 최대 키워드가 10개이므로, set으로 차집합을 구하면 두 집합 중 작은 것만큼 시간이 드는데,
|
|
작은 것의 최대 길이가 10이므로 O(10m)이다. set의 길이는 key의 개수이므로 O(1)이기 때문이다.
|
|
|
|
해설: 처음에는 memo - keyswords를 했는데 이 연산은 비파괴 연산이라 기존 set들을 유지해야하므로
|
|
차집합된 set을 새로 만든다. 따라서 memo 길이만큼의 시간이 든다.
|
|
그래서 in으로 있는지 확인(O(1))하고, remove(O(1))로 지웠다.
|
|
remove는 key가 없으면 keyerror가 나는데 그래서 나는 있을 때만 지워서 괜찮았고,
|
|
discard를 쓰면 있으면 지우고 없으면 그냥 가만히 있는다고 한다.
|
|
""" |