2021.12.14 이진 탐색 연습
# 오늘의 문제 이진 탐색 연습 # 나의 코드 이진 탐색 연습 중 재귀함수로 구현된 코드 def binary_search(array, target, start, end): if start > end: return None mid = (start + end) //2 if array[mid] == target: return mid elif array[mid] > target: return binary_search(array, target, start, mid -1) else: return binary_search(array, target, mid +1 , end) n, target = list(map(int, input().split())) array = list(map(int, input().split()..
2021.12.08 코테_퀵 정렬 연습
# 오늘의 문제 퀵 정렬 연습 # 나의 코드 퀵 정렬 연습 퀵정렬 : pivot ( 보통 배열의 첫번째 값을 지정한다 )이라고 하는 다른 값들과 비교할 값을 중점으로 왼쪽과 오른쪽을 나눈 후 재귀적으로 해당 함수를 계속 호출해 정렬하는 방식 직관적인 일반적 프로그래밍 언어식으로 만든 방식 array = [5, 7, 9, 0, 3, 1, 6, 2, 4, 8] def quick_sort(array, start, end): if start >= end: return pivot = start left = start + 1 right = end while left right: array[right], array[pivot] = array[pivot], array[right] else: array[left], ar..
2021.11.25 코테_삽입 정렬 연습
# 오늘의 문제 삽입 정렬 연습 # 나의 코드 삽입 정렬 연습 삽입정렬 : 배열의 모든 요소를 앞에서부터 정렬된 배열 부분과 비교한 후 자신이 들어가야할 정렬 위치를 찾아 삽입함으로 정렬이 되도록 하는 알고리즘을 말한다. array = [7,5,9,0,3,1,6,2,4,8] for i in range(1, len(array)): for j in range( i , 0 , -1): if array[j] < array[j-1]: array[j-1],array[j] = array[j],array[j-1] print(array) # 첫번째 배열은 정렬되어 있다고 가정하고 for 문을 돈다. # 두번째 루프에서는 i번 ~ 0 번 까지 -1씩 (큰수에서 작은수로) 돈다. # 배열의 j번째보다 배열의 j-1번째가 크..
2021.11.22 코테_선택 정렬 연습
# 오늘의 문제 선택 정렬 연습 # 나의 코드 선택 정렬 연습 선택정렬 : 기준이 되는 데이터 값을 토대로 유한체의 값을 뽑아 비교해가며 가장 작은 값을 찾아 첫번째 에 넣고, 그 다음 값을 가져와 유한체의 값을 뽑아 비교해 두번째에 넣고 끝날때 까지 그 작업을 n번 지속해 정렬을 하는 방법 array = [ 7, 5, 9, 0, 3, 1, 6, 2, 4, 8 ] for i in range(len(array)): min_index = i #range 파라미터 2개 들어가는 걸 모른다. for j in range( i+ 1 , len(array) ): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[min_in..