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
- 재귀
- BFS
- N과M
- 그리디
- BOJ
- level2
- 가상메모리 관리
- 브루트포스
- 구현
- 스택
- 파이썬
- python
- 힙
- level0
- level3
- level1
- dfs
- 수학
- 다이나믹 프로그래밍
- dict
- MYSQL
- 백준
- DP
- 코딩테스트
- 운영체제
- 프로그래머스
- 가상메모리
- 다익스트라
- programmers
- 딕셔너리
Archives
- Today
- Total
동캄의 코딩도장
프로그래머스 level2 [뉴스 클러스터링] 파이썬 본문
https://programmers.co.kr/learn/courses/30/lessons/17677
코딩테스트 연습 - [1차] 뉴스 클러스터링
뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브
programmers.co.kr
#프로그래머스 [1차] 뉴스 클러스터링
def makepair(s):
lst=[]
for i in range(len(s)-1):
if s[i].isalpha() and s[i+1].isalpha():
lst.append(s[i]+s[i+1])
return lst
def solution(str1, str2):
answer = 0
str1=makepair(str1.upper())
str2=makepair(str2.upper())
str1.sort()
str2.sort()
intersect=[]
i=0
j=0
while str1 and str2 and i<len(str1) and j<len(str2):
if str1[i]==str2[j]:
intersect.append(str1[i])
i+=1
j+=1
elif str1[i]>str2[j]:
j+=1
else:
i+=1
Union=str1+str2
for i in range(len(intersect)):
Union.pop(Union.index(intersect[i]))
if len(Union)!=0:
jac=len(intersect)/len(Union)
answer=int(jac*65536)
return answer
else:
if str1==str2:
return 65536
먼저, 각 문자열을 대문자로 변환하고, 두글자씩 알파벳으로 묶는다. (알파벳이 아니면 포함x)
그 후, intersect와 union을 구한다.
'코테 > 프로그래머스' 카테고리의 다른 글
프로그래머스 level2 [메뉴 리뉴얼] 파이썬 (0) | 2021.12.23 |
---|---|
프로그래머스 level2 [배달] 파이썬 (0) | 2021.12.23 |
프로그래머스 level2 [괄호 변환] 파이썬 (0) | 2021.12.18 |
프로그래머스 level2 [방금그곡] 파이썬 (0) | 2021.12.18 |
프로그래머스 level2 [튜플] 파이썬 (0) | 2021.12.17 |