22233-s3 성공
This commit is contained in:
38
workbook_8708/22233-s3.py
Normal file
38
workbook_8708/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