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
- 직원 이직률
- 캐글
- 개인 의료비 예측
- 영상제작기
- 팀 분석
- 포스코 아카데미
- 혼공머신러닝딥러닝
- 삼성SDS Brightics
- Brigthics Studio
- 모델링
- 혼공머신
- 브라이틱스
- Brightics Studio
- 직원 이직여부
- Brightics
- Brightics를 이용한 분석
- 혼공학습단
- 추천시스템
- 삼성 SDS Brigthics
- 삼성SDS Brigthics
- 데이터 분석
- 삼성 SDS
- 혼공
- 삼성SDS
- Brigthics
- 데이터분석
- 브라이틱스 서포터즈
- Brigthics를 이용한 분석
- 노코드AI
- 포스코 청년
Archives
- Today
- Total
데이터사이언스 기록기📚
[프로그래머스/Python] Level 2_[1차] 뉴스 클러스터링(2018 KAKAO BLIND RECRUITMENT) 본문
Coding Test/프로그래머스(Python)
[프로그래머스/Python] Level 2_[1차] 뉴스 클러스터링(2018 KAKAO BLIND RECRUITMENT)
syunze 2022. 10. 28. 18:48📌문제 유형
2018 KAKAO BLIND RECRUITMENT
📌문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
📌나의 문제풀이
- 문제풀이 순서
- 대소문자 구분X : 문자로 모두 변경
- 두 글자씩 끊어서 작성: 특수문자 아닐 경우, 리스트에 넣기 (리스트 컨프리헨션에 for-if문 사용)
[최종 결과물 for문 - if문] - 예외 처리: 나눗셈 정의 안되는 경우 1로 정의
- 자카드 유사도 계산
- 다중 집합의 합집합 : 하나의 리스트 복사 후, 다른 리스트랑 비교하기
- 다중 집합의 교집합 : 리스트 1,2 비교하면서 동시에 있으면 다른 리스트에 넣기
[개념정리] 파이썬 다중 집합의 교집합, 합집합
코테 연습할때마다 잊을만 하면 나오는 다중집합이다. 굳이 몰라도 되지만, 모른채 쓰려면 머지소트를 구현해야 하는 굉장한 번거로움이 있기때문에 알아두는게 좋을 것 같아서 포스팅 한다. 1.
velog.io
def solution(str1, str2):
answer = 0
# 대소문자 구분X
str1 = list(str1.lower())
str2 = list(str2.lower())
# 두 글자씩 끊어서 작성
str1_list = [str1[i] + str1[i+1] for i in range(len(str1)-1) if (str1[i] + str1[i+1]).isalpha() == True]
str2_list = [str2[i] + str2[i+1] for i in range(len(str2)-1) if (str2[i] + str2[i+1]).isalpha() == True]
# 나눗셈 정의 안되는 경우 1로 정의
if len(str1_list) == 0 and len(str2_list) == 0:
return round(1 * 65536,1)
# 자카드 유사도 계산
overlap = []
a_temp = str1_list.copy()
result = str1_list.copy()
# 분모 구하기
for i in str2_list:
if i not in a_temp:
result.append(i)
else:
a_temp.remove(i)
# 분자 구하기
for i in str2_list:
if i in str1_list:
str1_list.remove(i)
overlap.append(i)
return int((len(overlap) / len(result))* 65536)
📌다른 사람의 문제풀이
1) min,max 이용한 다중집합 처리
import re
import math
def solution(str1, str2):
str1 = [str1[i:i+2].lower() for i in range(0, len(str1)-1) if not re.findall('[^a-zA-Z]+', str1[i:i+2])]
str2 = [str2[i:i+2].lower() for i in range(0, len(str2)-1) if not re.findall('[^a-zA-Z]+', str2[i:i+2])]
gyo = set(str1) & set(str2)
hap = set(str1) | set(str2)
if len(hap) == 0 :
return 65536
gyo_sum = sum([min(str1.count(gg), str2.count(gg)) for gg in gyo])
hap_sum = sum([max(str1.count(hh), str2.count(hh)) for hh in hap])
return math.floor((gyo_sum/hap_sum)*65536)
📌리뷰
- 다중 교집합/합집합 : set으로 중복안된 집합 만들기 -> min, max로 계산하기
📌참고
[파이썬 중급 문법] 리스트 컴프리헨션 간단 정리
안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다. 코딩유치원에서는 파이썬 기초부터 사무자동화, 웹크롤링, 데이터 분석 등의 다양한 패키지까지 초보자도 알기 쉽도록
coding-kindergarten.tistory.com
Python 리스트 합집합, 교집합, 차집합, 대칭차 - 제타위키
다음 문자열 포함...
zetawiki.com
[개념정리] 파이썬 다중 집합의 교집합, 합집합
코테 연습할때마다 잊을만 하면 나오는 다중집합이다. 굳이 몰라도 되지만, 모른채 쓰려면 머지소트를 구현해야 하는 굉장한 번거로움이 있기때문에 알아두는게 좋을 것 같아서 포스팅 한다. 1.
velog.io
728x90
'Coding Test > 프로그래머스(Python)' 카테고리의 다른 글
[프로그래머스/Python] Level 2_오픈채팅방(2019 KAKAO BLIND RECRUITMENT) (0) | 2022.10.30 |
---|---|
[프로그래머스/Python] Level 2_주차 요금 계산(2022 KAKAO BLIND RECRUITMENT) (0) | 2022.10.30 |
[프로그래머스/Python] Level 2_n^2 배열 자르기(월간 코드 챌린지 시즌3) (0) | 2022.10.17 |
[프로그래머스] Level 2_튜플(2019 카카오 개발자 겨울 인턴십) (0) | 2022.10.14 |
[프로그래머스] Level 2_괄호 회전하기(월간 코드 챌린지 시즌2) (0) | 2022.10.14 |
Comments