[프로그래머스] 뉴스 클러스터링 (파이썬, 문자열)
728x90
반응형
def solution(str1, str2):
a=[str1[i-1:i+1].lower() for i in range(1,len(str1)) if str1[i-1:i+1].isalpha()]
b=[str2[i-1:i+1].lower() for i in range(1,len(str2)) if str2[i-1:i+1].isalpha()]
inter=[]
union=[]
for i,x in enumerate(a):
if x in b:
inter.append(x)
union.append(x)
b.remove(x)
elif x not in b:
union.append(x)
for x in b:
union.append(x)
if len(inter)==len(union)==0:
return 65536
return int(len(inter)/len(union)*65536)
어떻게든 풀어본 흔적... 인데 파이썬에 익숙치 않아서 좋은 코드를 생각해나기 힘든 것 같다
밑은 다른 분의 훌륭한 코드이다
def solution(str1, str2):
list1 = [str1[n:n+2].lower() for n in range(len(str1)-1) if str1[n:n+2].isalpha()]
list2 = [str2[n:n+2].lower() for n in range(len(str2)-1) if str2[n:n+2].isalpha()]
tlist = set(list1) | set(list2)
res1 = [] #합집합
res2 = [] #교집합
if tlist:
for i in tlist:
res1.extend([i]*max(list1.count(i), list2.count(i)))
res2.extend([i]*min(list1.count(i), list2.count(i)))
answer = int(len(res2)/len(res1)*65536)
return answer
else:
return 65536
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 멀리 뛰기 (dp, 파이썬) (0) | 2020.09.23 |
---|---|
[프로그래머스] 가장 긴 펠린드롬 (파이썬, javascript) (0) | 2020.09.23 |
[프로그래머스] 튜플 (문자열, 정렬, python, javascript) (0) | 2020.09.23 |
[프로그래머스] 피보나치수 (파이썬) (0) | 2020.09.21 |
[프로그래머스] 가장 큰 정사각형 찾기 (파이썬, dp) (0) | 2020.09.21 |
TAGS.