자카드 유사도 + 카카오 문제
자카드 유사도는 두 문장을 각각의 집합으로 만든 뒤두 집합을 통해 유사도를 측정하는 알고리즘이다. 그림 출처 : https://lsjsj92.tistory.com/443 두 문장의 교집합 개수는 6개, 합집합 개수는 24개로 자카드 유사도는 0.25가 된다. 예제 : 두 집합의 유사도 구하기1 A={1,2,3} B= {2,3,4} J(AnB)={2,3}J(AUB)={1,2,3,4} J(A,B)= 2 / 4 = 0.5 예제 : 두 집합의 유사도 구하기2 A={FR,RA,AN,NC,CE} B= {FR,RE,EN,NC,CH} J(AnB)={FR,RC}J(AUB)={FR,RA,AN,NC,CE,RE,EN,CH} J(A,B)= 2 / 8 = 0.25 # 파이썬으로 집합 자료구조 만들기 a={1,2,3,4}b={2,..
버블 정렬
12345678910a=[5,4,3,2,1,8,7,10]def bubble_sort(a): for i in range (len(a)-1): for j in range (len(a)-i-1): # 이미 정렬이 완료된 오른쪽은 제외 if a[j]>a[j+1]: temp=a[j+1] a[j+1]=a[j] a[j]=temp return aprint(bubble_sort(a)) 정렬이 가장 오래걸리는 경우는 제일 작은 수가 오른쪽 끝에 있을 때니까 ( 매 반복때마다 한칸씩 앞으로 옴 )실험해보고 싶으신 분은 제일 작은 수 0을 끝자리에 추가해보면 된다. 123456789101112#a=[5,4,3,2,1,8,7,10]a=[5,4,3,2,1,8,7,10,0]def bubble_sort(a): for i in ran..
이진 탐색
코드 1 1234567891011121314151617181920212223242526272829a=[1,7,11,12,14,23,33,47,51,64,67,77,139,672,871]num=int(input('검색할 숫자를 입력하세요 : '))cnt=0 # 검색 횟수 변수 선언 while(True): cnt+=1 # 검색 횟수 1씩 증가 import numpy as np a_n=np.array(a) if len(a)%2==1: # 리스트의 요소의 개수가 홀수면 np.median(a_n)하면 바로 나오지만 a_m=int(np.median(a_n)) else: # 짝수면 가운데 값 두 개를 더해서 반으로 나눈 값을 반환해서 줘서 리스트의 없는 중위값이 나와버림 a_m=a[len(a)//2] # 그래서 중위..