from collections import Counter
def solution(str1, str2):
lst_str1 = make_str_set(str1)
lst_str2 = make_str_set(str2)
if len(lst_str1)==0 and len(lst_str2)==0:
return 65536
len_inter = len(list((Counter(lst_str1) & Counter(lst_str2)).elements()))
len_union = len(lst_str1) + len(lst_str2) - len_inter
return int(len_inter/len_union * 65536)
def make_str_set(str1):
arr = []
for i in range(len(str1)):
s = str1[i:i+2]
if (s.isalpha()) and len(s)==2:
arr.append(str1[i:i+2].lower())
return arr
생각해보기
- 주어진 두 개의 문자열을 make_str_set()로 조건에 맞게 각각 새로운 리스트로 반환한다.
- Counter는 논리 연산자 사용이 가능하기 때문에 이를 활용하면 간단하게 문제를 풀 수 있다.