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
- 스프링
- 소트인사이드
- 백트래킹
- 스프링프레임워크
- 스택
- 덩치
- 다익스트라
- sort
- 브루트포스
- 프로그래머스
- 그리디
- 그리디알고리즘
- 2중포문
- 백준
- 404에러
- 월간 코드 챌린지 시즌2
- 최빈값
- 최단거리
- 동적계획법
- Backtracking
- 정렬
- 퇴각검색
- DFS
- 동적
- 소트
- 코딩테스트
- Python
- 코테
- 통계학
- 파이썬
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[프로그래머스] [1차] 뉴스 클러스터링 / 파이썬(python) 본문
# 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/17677
# 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