폴더 분리
This commit is contained in:
38
workbook_8708/silver/22233-s3.py
Normal file
38
workbook_8708/silver/22233-s3.py
Normal file
@@ -0,0 +1,38 @@
|
||||
# 가희와 키워드
|
||||
|
||||
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를 쓰면 있으면 지우고 없으면 그냥 가만히 있는다고 한다.
|
||||
"""
|
||||
Reference in New Issue
Block a user