세용용용용 2023. 7. 10. 21:35

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')