Lv2 - 뉴스 클러스터링

LeeKyoungChang·2022년 4월 28일
0

Algorithm

목록 보기
184/203
post-thumbnail

📚 Lv2 - 뉴스 클러스터링

뉴스 클러스터링

 

이해

파이썬을 사용하기에 좋은 점으로, 라이브러리를 사용하면 쉽게 구현할 수 있다.

  • 소문자와 대문자 : upper()
  • 알파벳 저장하기 : list
  • 알파벳 중복 개수 세기 : Counter
  • 알파벳 중복 개수 만큼 똑같은 문자 만들기 : Counter.elements()

이를 이용하면 된다.

 

소스

from collections import Counter

def solution(str1, str2):
    answer = 0
    
    # (1) str1, str2
    str1 = str1.upper()
    str2 = str2.upper()
    
    str_alpha = []
    str2_alpha = []
    # (2) 리스트에 알파벳 저장하기
    for i in range(len(str1)-1):
        if str1[i].isalpha() and str1[i+1].isalpha():
            str_alpha.append(str1[i]+str1[i+1])
    
    for i in range(len(str2)-1):
        if str2[i].isalpha() and str2[i+1].isalpha():
            str2_alpha.append(str2[i]+str2[i+1])
    
    Counter1 = Counter(str_alpha)
    Counter2 = Counter(str2_alpha)
    # Counter.element() : Counter된 숫자만큼 요소들을 리턴
    a = list((Counter1 & Counter2).elements())
    b = list((Counter1 | Counter2).elements())

    if not len(a) and not len(b):
        answer = 65536
    else:
        answer = int(len(a)/len(b) * 65536)
    
    return answer

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글