Python24 [ Python_알고리즘 ] 배열의 최대곱 & 거리 구하기 ( sqrt ) # 두 배열의 최댓값 구하기 def max_value(left_array, right_array); new_list = list() for i in left_array : for j in right_array : new_list.append(i*j) #maxvalue = max(maxvalue, i*j) #max 함수에 두가지 파라미터를 넣어서 두 값을 비교해 더 큰 값 구하기 return max(new_list) #return maxvalue print(max_value([9,-6,5],[-4,3,8]) #두 지점 사이의 최소 거리 구하기 #sqrt함수 from math import sqrt def distance(store1, store2): return sqrt((store1[0] - store2[.. 2021. 12. 20. [ Python_알고리즘 ] 이진 탐색 재귀 함수 [ 이진 탐색 ] 이진 탐색 : 리스트를 1회 비교를 거칠 때마다 탐색 범위가 절반으로 줄어든다. # 이진 탐색 반복문 def binary_search( element, my_list ) : start = 0 end = len(my_list)-1 while start my_list[middle] start = middle + 1 return None print( binary_search( 6, [2,3,5,6,8,9,10,11] ) d.. 2021. 12. 18. [ Python_알고리즘 ] 리스트 뒤집기 [ 리스트 뒤집기 ] # 리스트 슬라이싱을 이용한 reverse # 문자열 뒤집기 => [::-1] def list_reverse(my_list) : return my_list[::-1] my_number_list = [1,2,3,4,5,6,7,8,9] print( list_reverse(my_number_list) # 리스트 슬라이싱을 이용한 reverse 2 def list_reverse(my_list) : if len(my_list) == 0 or len(my_list) == 1 : return my_list return my_list[-1:] + list_reverse(my_list[:-1]) # my_list[-1:] => 9 ( 인덱스 -1 ~ 0 ) # my_list[:-1] => [ 1,2.. 2021. 12. 18. [ Python_알고리즘 ] 자릿 수 합 파라미터 n을 받고 n의 자릿 수의 값들을 모두 더하는 함수 # 반복문 def sum_number(n): my_str = str(n) my_number = 0 for i in range(len(my_str)) : my_number += int(my_str[i]) return my_number print(sum_number(13579)) # 재귀함수 def sum_number(n): if n < 10 : return n return n % 10 + sum_number(n//10) print(sum_number(13579)) # 슬라이싱을 이용한 재귀함수 def sum_number(n): my_str = str(n) if len(my_str) == 1 : return int(n) if len(my_str) .. 2021. 12. 17. [ Python_알고리즘 ] 삼각수 [ 삼각수 ] n번째 삼각수는 자연수 1부터 n까지의 합 파라미터로 n값을 받고 n번째 삼각 수를 리턴해주는 재귀함수 def triangle_number(n): if n == 1 : return 1 result = n + triangle_number(n-1) return result #triangle_number(1)부터 triangle_number(10)까지 출력 for i in range(1, 11): print(triangle_number(i)) 2021. 12. 17. [ Python_알고리즘 ] 피보나치 수열 #팩토리얼 재귀함수 def factorial(n) if n == 0 : return 1 return factorial(n-1)*n print(factorial(4)) [ 피보나치 수열 ] 첫번째 항과 두번째 항이 1이고, 세번째 항부터는 바로 앞의 두 항의 합으로 정의된 수열 def fib(n): if n == 1 or n == 2 : return 1 elif n > 2 : start = fib(n-2) middle = fib(n-1) end = start + middle return end # 몇번째 항인지 출력 for i in range(1, 11): print(fib(i)) def fib(n): if n == 1 or n == 2 : return 1 start = fib(n-2) middle = f.. 2021. 12. 17. 이전 1 2 3 다음