본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 2단계

[1차] 뉴스 클러스터링

by 세용용용용 2023. 7. 10.

def solution(str1, str2):
    answer = 0
    str1_list = []
    str2_list = []

    #문자열 두개씩 띄어서 리스트에 넣기(isalpha사용)
    for i in range(len(str1)-1):
        if str1[i:i+2].isalpha() == True:
            str1_list.append(str1[i:i+2].upper())
    for i in range(len(str2)-1):
        if str2[i:i+2].isalpha() == True:
            str2_list.append(str2[i:i+2].upper())
   
    #교집합의 개수를 카운트
    guzi = 0
    for i in set(str1_list):
        guzi_count = min(str1_list.count(i), str2_list.count(i))
        if guzi_count != 0:
            guzi+=guzi_count
   
    #합집의 개수를 카운트
    sumzi = 0
    for i in set(str1_list):
        sumzi += max(str1_list.count(i), str2_list.count(i))
    for i in set(str2_list):
        if i not in str1_list:
            sumzi+=str2_list.count(i)

    #분모가 0이면 계산이 불가능함 jaka를 1로 치환
    #아니면 교집합/합집합
    if sumzi == 0:
        jaka = 1
    else:
        jaka = guzi/sumzi
   
    #int(jaka*65536)
    answer = int(jaka*65536)
    #print(answer)
    return answer
solution('FRANCE', 'french')

'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글

타겟 넘버  (0) 2023.07.12
피로도  (0) 2023.07.11
프로세스  (0) 2023.07.08
기능개발  (0) 2023.07.08
할인행사  (0) 2023.07.08