https://school.programmers.co.kr/learn/courses/30/lessons/17677
from collections import Counter
def solution(str1, str2):
# J(A, B) -> 교집합 크기 / 합집합 크기
# A와 B가 공집합이면 1
str1_list = []
str2_list = []
for i in range(len(str1) - 1):
temp = str1[i] + str1[i + 1]
if temp.isalpha():
str1_list.append(temp.lower())
for i in range(len(str2) - 1):
temp = str2[i] + str2[i + 1]
if temp.isalpha():
str2_list.append(temp.lower())
# 요소가 몇개씩 있는지
element = set(str1_list + str2_list)
str1_counter = dict(Counter(str1_list))
str2_counter = dict(Counter(str2_list))
# 합집합, 교집합 찾기
uni = 0
inter = 0
for e in element:
if e in str1_counter.keys() and e in str2_counter.keys():
max_val = max(str1_counter[e], str2_counter[e])
min_val = min(str1_counter[e], str2_counter[e])
uni += max_val
inter += min_val
elif e in str1_counter.keys():
max_val = str1_counter[e]
min_val = 0
uni += max_val
inter += min_val
elif e in str2_counter.keys():
max_val = str2_counter[e]
min_val = 0
uni += max_val
inter += min_val
if uni == 0 and inter == 0:
return 65536
else:
return int(inter / uni * 65536)
728x90
반응형
'🔻PS > Programmers' 카테고리의 다른 글
[Programmers] 프로그래머스 이진 변환 반복하기 Python (0) | 2024.05.29 |
---|---|
[Programmers] 프로그래머스 이중우선순위큐 Python (0) | 2024.05.26 |
[Programmers] 프로그래머스 n진수 게임 Python (0) | 2024.05.20 |
[Programmers] 프로그래머스 외계인 사전 Python (0) | 2024.05.19 |
[Programmers] 프로그래머스 명예의 전당(1) Python (0) | 2024.05.19 |