나의 풀이
import re
def solution(str1, str2):
str1=str1.upper()
str2=str2.upper()
list_str1=[]
list_str2=[]
for i in range(len(str1)-1):
if str1[i:i+2].isalpha():
list_str1.append(str1[i:i+2])
for i in range(len(str2)-1):
if str2[i:i+2].isalpha():
list_str2.append(str2[i:i+2])
hap=0
gyo=0
list_str1과 list_str2에서 가장 중복되지 않는 순수한 요소로만 set을 구성한다.
for s in set(list_str1+list_str2):
gyo +=min(list_str1.count(s), list_str2.count(s))
hap +=max(list_str1.count(s), list_str2.count(s))
if gyo ==0 and hap ==0:
return 65536
elif gyo==0 and hap>0:
return 0
else:
answer=int((gyo/hap)*65536)
return answer
▶ str1[i:i+2] 매우 중요하다. i,와 i+1에 해당하는 문자열을 슬라이싱한다.
▶ isalpha()는 전부 영어로만 이루어진 경우에 true를 반환한다!!!!!!!!!!!!!
'프로그래머스(파이썬) > LV.2(파이썬)' 카테고리의 다른 글
타켓넘버→ DFS(깊이우선탐색)★★+요소 더하기, 요소 빼기+ 재귀함수 (0) | 2022.12.30 |
---|---|
전화번호 목록 →기준값 갱신+startswith()+숫자문자열 정렬★★ (0) | 2022.12.29 |
프린터 → 응급실(큐)+리스트 컴프리핸션 + enumerate()+ any()★★ (0) | 2022.12.28 |
기능 개발→ deque, 이중 while문★, 미친 for문★, 갱신★ (0) | 2022.12.27 |
튜플→Counter, 정규식, most_common(), split()★★ (0) | 2022.12.27 |