파이썬을 사용하기에 좋은 점으로, 라이브러리를 사용하면 쉽게 구현할 수 있다.
- 소문자와 대문자 :
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