본문 바로가기

알고리즘

프로그래머스)[1차] 뉴스 클러스팅

 

https://school.programmers.co.kr/learn/courses/30/lessons/17677

 

프로그래머스

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

programmers.co.kr

 

 

 

from collections import Counter

def solution(str1, str2):
    answer = 0
    arr1 = []
    arr2 = []
    for i in range(0,len(str1)-1):
        if str1[i].isalpha() and str1[i+1].isalpha():
            arr1.append(str1[i].lower()+str1[i+1].lower())
        # print(str1[i])
    
    for i in range(0,len(str2) - 1):
        if str2[i].isalpha() and str2[i+1].isalpha():
            arr2.append(str2[i].lower()+str2[i+1].lower())
    c1 = Counter(arr1)
    c2 = Counter(arr2)
    
    o = list((c1 & c2).elements())
    t = list((c1 | c2).elements())
    if len(o) == 0 and len(t) == 0:
        return 65536
    answer = int((len(o) / len(t)) * 65536)
    return answer

 

 

딱히 어려운 구현문제는 아니었다.

우선 str[i]와 str[i+1]를 .isalpha()를 통해 둘 모두 알파벳인지 확인 후에 리스트에 담는다.

str1, str2를 담은 리스트를 &와 | 연산자를 통해 교집합과 합집합을 구하면 끝이난다.

'알고리즘' 카테고리의 다른 글

백준)차이를 최대로  (0) 2023.02.26
백준)날짜 계산 (브루트포스)  (0) 2023.02.26
프로그래머스)이진 변환 반복하기  (0) 2023.02.24
백준)1,2,3 더하기  (0) 2023.02.24
백준)부녀회장이 될테야  (0) 2023.02.23