본문 바로가기
Programming/Programmers

[프로그래머스] 뉴스 클러스터링(Python)

by 데이터현 2021. 10. 30.

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

 

코딩테스트 연습 - [1차] 뉴스 클러스터링

뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브

programmers.co.kr

Counter를 활용해서 주어진 조건대로 구현해서 풀었다.

나의 풀이

from collections import Counter
def solution(str1, str2):
    str1 = str1.upper()
    str2 = str2.upper()
    intersection, union = 0 , 0
    word_list1, word_list2 = [] , []
    word_set = set()
    for i in range(len(str1)-1):
        word = str1[i:i+2]
        if word.isalpha():
            word_list1.append(word)
            word_set.add(word)
    for i in range(len(str2)-1):
        word = str2[i:i+2]
        if word.isalpha():
            word_list2.append(word)
            word_set.add(word)
    cnt1 = Counter(word_list1)
    cnt2 = Counter(word_list2)
    for i in word_set:
        intersection += min(cnt1[i],cnt2[i])
        union += max(cnt1[i],cnt2[i])
    try: 
        return int(intersection/union*65536)
    except :
        return 65536

댓글