[Python3]프로그래머스_뉴스 클러스터링

Beanzinu·2022년 6월 5일

코딩테스트

목록 보기
34/42

문제출처 : https://programmers.co.kr/learn/courses/30/lessons/17677

접근법

  1. group(s)
  • 문자열 s를 받아 두 글자씩 묶어 두 글자 모두 문자일 경우 모두 소문자로 변경하여 리스트에 하나씩 넣어 전체 리스트 반환
  1. group(str1) , group(str2) 의 결과 리스트들을 비교하여 합집합을 구한 뒤 전체 결과 반환

코드

def group(s):
    s1 = []
    for i in range(len(s)-1):
        if( s[i].isalpha() and s[i+1].isalpha() ):
            s1.append( (s[i]+s[i+1]).lower() )
    return s1
def solution(str1, str2):
    answer = 0
    s1 = group(str1)
    s2 = group(str2)

    count = 0
    for word in s1:
        if( word in s2 ):
            count += 1
            s2.remove(word)


    return 65536 if not s1 and not s2 else int( 65536 * (count/len(s1+s2)) )
profile
당신을 한 줄로 소개해보세요.

0개의 댓글