[BOJ] Q22233 가희와 키워드
        
         
  
      [BOJ] Q22233 가희와 키워드
Question
Language: Python
Difficulty: Silver 2
해당 문제는 해싱을 통해 특정 값이 집합 내에 존재하는지 여부를 통해 문제를 풀이하는 유형의 문제이다.
Solution1
defaultdict을 활용하여 집합 내에 값이 존재하는 지 여부를 판단, defaultdict를 활용하게 되면, 기본적으로 값을 초기화를 진행하기 때문에 상대적으로 dictionary 형태보다 시간이 많이 소요된다.
from collections import defaultdict
def solution():
    keyword_count=n
    for note_keywords in notes:
        for keyword in note_keywords:
            if keywords[keyword]==1:
                keywords[keyword]=-1
                keyword_count-=1
        print(keyword_count)
if __name__ == "__main__":
    n,m=map(int,input().split())
    keywords=defaultdict(int)
    for _ in range(n):
        keyword=input().strip()
        keywords[keyword]=1
    notes=[list(map(str,input().strip().split(","))) for _ in range(m)]
    
    solution()
Solution 2
set을 활용하여 집합 내에 값이 있는지 여부를 판단하는 방법으로도 풀이가 가능하다.
from collections import defaultdict
def solution():
    keyword_count=n
    for note_keywords in notes:
        for keyword in note_keywords:
            if keyword in keywords:
                keyword_count-=1
                keywords.remove(keyword)
        print(keyword_count)
if __name__ == "__main__":
    n,m=map(int,input().split())
    keywords=set()
        
    for _ in range(n):
        keyword=input().strip()
        keywords.add(keyword)
        
    notes=[list(map(str,input().strip().split(","))) for _ in range(m)]
    
    solution()
      
댓글남기기