Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Backtracking
- 스택
- 동적
- 파이썬
- Python
- 2중포문
- 프로그래머스
- 백트래킹
- 월간 코드 챌린지 시즌2
- 백준
- 최단거리
- 정렬
- 스프링프레임워크
- 최빈값
- 다익스트라
- 퇴각검색
- DFS
- 스프링
- 덩치
- sort
- 통계학
- 코딩테스트
- 소트
- 그리디알고리즘
- 소트인사이드
- 코테
- 그리디
- 404에러
- 동적계획법
- 브루트포스
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[프로그래머스] [1차] 뉴스 클러스터링 / 파이썬(python) 본문
# 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/17677
코딩테스트 연습 - [1차] 뉴스 클러스터링
뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브
programmers.co.kr
# Soultion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import math
def solution(str1, str2):
answer = 0
arr1 = []
arr2 = []
for i in range(0,len(str1)-1):
tmp = str1[i:i+2]
if tmp.isalpha(): # 문자열만 취급
arr1.append(tmp.lower()) #소문자로 변경하여 저장
for i in range(0,len(str2)-1):
tmp = str2[i:i+2]
if tmp.isalpha(): # 문자열만 취급
arr2.append(tmp.lower()) #소문자로 변경하여 저장
if len(arr2)==0 and len(arr1)==0: # 둘다 공집합일경우
answer = 1
else:
cnt = 0
for i in arr1:
if i in arr2:
cnt+=1 # 교집합
arr2.remove(i)
answer = cnt/(len(arr1)+len(arr2))
return math.floor(answer*65536)
|
cs |
6~13. 각 문자열을 2글자씩 끊은다음, 문자열로만 이루어져있으면 소문자로 변경하여 저장
15. 둘다 공집합인 경우 자카드 유사도는 1이므로 따로 처리해준다.
18. 교집합의 개수를 구하기위한 변수
19. 2글자씩 끊어진 문자열을 한개씩 비교하여 교집합의 개수를 구하고, 제거해준다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 게임 맵 최단거리 / 파이썬(python) (0) | 2021.05.25 |
---|---|
[백준] 1303번 전쟁-전투 / 파이썬(python) (0) | 2021.05.25 |
[프로그래머스] 가장 먼 노드 / 파이썬(python) (0) | 2021.05.24 |
[프로그래머스] 더 맵게 / 파이썬(python) (0) | 2021.05.23 |
[프로그래머스] 기능개발 / 파이썬(python) (0) | 2021.05.22 |
Comments