본문 바로가기
프로그래머스/2단계

(Python/LV2)[1차] 뉴스 클러스터링

by windy7271 2022. 9. 27.
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이:

from collections import Counter


def solution(str1, str2):

    result1 = [str1[i:i + 2].upper() for i in range(len(str1) - 1) if str1[i : i+2].isalpha()]
    result2 = [str2[i:i + 2].upper() for i in range(len(str2) - 1) if str2[i : i+2].isalpha()]
    
    if len(result1) == 0 and len(result2) == 0 : return 65536

    A = Counter(result1)
    B = Counter(result2)

    sum_AB = sum((A | B).values())
    mid_AB = sum((A & B).values())

    return int(mid_AB / sum_AB * 65536)

isalpha 문자면 True 리턴

Counter 딕셔너리 형태로 하나하나 카운트 세줌

| 합집합 & 교집합

반응형

댓글