[프로그래머스] 뉴스 클러스터링 (Python)

2021. 3. 24. 22:58·코딩 테스트
728x90

🍒문제

programmers.co.kr/learn/courses/30/lessons/17677?language=python3

 

코딩테스트 연습 - [1차] 뉴스 클러스터링

뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브

programmers.co.kr

🍒풀이

1. string 을 모두 대문자 or 소문자로 변환 후

2. 2개씩 단어를 짤라서 리스트에 저장한다. (str1 -> a 리스트, str2 -> b 리스트에 저장)

3. 두 리스트의 교집합과 합집합을 구한 뒤

4. 교집합 원소 중 count 함수를 사용해서 둘 중 (a, b) 작은 값을

5. 합집합 원소 중 count 함수를 사용해서 둘 중 큰 값을 구한다.

6. union_sum = 0 이면 65536을 리턴하고

7. 0이 아니면 answer * 65536 을 int 형으로 리턴한다.

 

🍒코드

def make_list(s_str):
    li = []
    for i in range(len(s_str)-1):
        tmp = s_str[i:i+2]
        if tmp.isalpha() == False:
            continue
        li.append(tmp)
    return li
    
    
def solution(str1, str2):
    answer = 1.0
    
    a = make_list(str1.upper())
    b = make_list(str2.upper())
    
    intersect = set(a) & set(b)
    union = set(a) | set(b)
    
    inter_sum = sum([min(a.count(x), b.count(x)) for x in intersect])
    union_sum = sum([max(a.count(x), b.count(x)) for x in union])
    if union_sum == 0:
        return 65536
    
    answer = inter_sum / union_sum
    answer = int(answer * 65536)
    return answer

 

728x90

'코딩 테스트' 카테고리의 다른 글

[프로그래머스] 쿼드압축 후 개수 세기 (C++)  (0) 2021.03.30
[프로그래머스] 신규 아이디추천 (Python)  (0) 2021.03.29
[프로그래머스] 게임 맵 최단거리 (C++)  (0) 2021.03.23
[프로그래머스] 타겟넘버 (Python)  (0) 2021.03.23
[프로그래머스] 가장 큰 정사각형 찾기 (Python)  (0) 2021.03.23
'코딩 테스트' 카테고리의 다른 글
  • [프로그래머스] 쿼드압축 후 개수 세기 (C++)
  • [프로그래머스] 신규 아이디추천 (Python)
  • [프로그래머스] 게임 맵 최단거리 (C++)
  • [프로그래머스] 타겟넘버 (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    LeetCode
    리트코드
    알고리즘
    MySQL
    kafka
    자료구조
    이분탐색
    pythoncodingtest
    스프링
    코딩
    금융용어
    카카오코테
    프로그래머스
    자바
    java
    코테
    코딩테스트
    CodingTest
    Kotlin
    쿠버네티스
    db
    C++
    codility
    Spring
    springboot
    Python
    네트워크
    코테공부
    코딜리티
    스프링부트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[프로그래머스] 뉴스 클러스터링 (Python)
상단으로

티스토리툴바