[Programmers] [1차] 뉴스 클러스터링

태환·2024년 3월 19일
0

Coding Test

목록 보기
130/151

📌 [Programmers][1차] 뉴스 클러스터링

📖 문제

📖 예제

📖 풀이

def solution(str1, str2):
    str1 = str1.lower()
    str2 = str2.lower()
    
    A, B = [], []
    for i in range(len(str1)-1):
        str = str1[i:i+2]
        if str.isalpha():
            A.append(str)
    for i in range(len(str2)-1):
        str = str2[i:i+2]
        if str.isalpha():
            B.append(str)
    
    if len(A) == 0 and len(B) == 0:
        j = 1
    else:
    
    # A와 B의 합집합 구하기
        a_result = A.copy()
        a_temp = A.copy()
        for i in B:
            if i not in a_temp:
                a_result.append(i)
            else:
                a_temp.remove(i)
      	
    # A와 B의 교집합 구하기
        result = []
        for i in B:
            if i in A:
                result.append(i)
                A.remove(i)
        
        j = len(result) / len(a_result)
    return int(j * 65536)

str1과 str2를 두 글자씩 끊어서 알파벳에 해당할 경우 A와 B에 각각 저장한다.
A와 B의 합집합을 구하고, A와 B의 교집합을 구한 뒤 자카드 유사도를 구한다.

profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글