honey_pot

[python] 뉴스 클러스터링 본문

문제 풀이

[python] 뉴스 클러스터링

_tera_ 2021. 12. 13. 21:45

https://programmers.co.kr/learn/courses/30/lessons/17677

from collections import Counter
def solution(str1, str2):
    answer = 0
    
    str_1 = []
    str_2 = []

    # 알파벳만 소문자로 2글자씩 담기        
    for i in range(0,len(str1)):
        if len(str1[i:i+2]) >= 2:
            if str1[i:i+2].isalpha():
                str_1.append(str1[i:i+2].lower())
    for i in range(0,len(str2)):
        if len(str2[i:i+2]) >= 2:
            if str2[i:i+2].isalpha():
                str_2.append(str2[i:i+2].lower())
    
    co1 = Counter(str_1)
    co2 = Counter(str_2)
    
    # 교집합
    inter = list((co1 & co2).elements())
    # 합집합
    union = list((co1 | co2).elements())
    
    try:
        answer = 65536*len(inter)//len(union)
    except: # 0으로 나눌 경우 예외 처리
        answer = 65536
    return answer

Counter의 교집합& 합집합 | 기능을 쓰려고 보니 combinations으로도 &, | 되지 않을까..??!? 하고 하루 종일 combinations 이렇게저렇게 해봤는데 안 돼서 결국 Counter로 돌아왔다 ㅎ value 값만 추출하는 elements() 메소드를 쓰면 빠르게 솎아낼 수 있어서 편하다

'문제 풀이' 카테고리의 다른 글

[python] 교점에 별 만들기  (0) 2022.06.23
[Python] 리트코드 4sum  (0) 2022.05.14
[python] 오픈채팅방  (0) 2021.11.24
[python] 메뉴 리뉴얼  (0) 2021.11.20
[python] 괄호 변환  (0) 2021.11.19
Comments