반응형

분류 전체보기 164

동적계획법

1. 정의 - 동적계획법 (DP 라고 많이 부름) - 입력 크기가 작은 부분 문제들을 해결한 후, 해당 부분 문제의 해를 활용해서, 보다 큰 크기의 부분 문제를 해결, 최종적으로 전체 문제를 해결하는 알고리즘 - 상향식 접근법으로, 가장 최하위 해답을 구한 후, 이를 저장하고, 해당 결과값을 이용해서 상위 문제를 풀어가는 방식 - Memoization 기법을 사용함 - Memoization (메모이제이션) 이란: 프로그램 실행 시 이전에 계산한 값을 저장하여, 다시 계산하지 않도록 하여 전체 실행 속도를 빠르게 하는 기술 - 문제를 잘게 쪼갤 때, 부분 문제는 중복되어, 재활용됨 - 예: 피보나치 수열 - 분할 정복 - 문제를 나눌 수 없을 때까지 나누어서 각각을 풀면서 다시 합병하여 문제의 답을 얻는 ..

퀵 정렬

1. 퀵 정렬 (quick sort) 이란? 1. 기준점(pivot 이라고 부름)을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 함수를 작성함 2. 각 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복함 3. 함수는 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 리턴함 Pivot을 기준으로 Pivot과 나머지를 비교 함 작은데이터 , pivot , 큰데이터 - > 이렇게 정렬 함

순차탐색

### 1. 순차 탐색 (Sequential Search) 이란? * 탐색은 여러 데이터 중에서 원하는 데이터를 찾아내는 것을 의미 * 데이터가 담겨있는 리스트를 앞에서부터 하나씩 비교해서 원하는 데이터를 찾는 방법 데이터 준비 ) 만들어 놓은 데이터 data_list를 통해서 [index]로 인덱스를 잡고 for문으로 하나씩 돌면서 index에 맞는 것 ( 같은 수)이나오면 index를 출력하고 같은 수가 없다면 -1 출력

버블 정렬

* 단순히 표현하면 인접한 데이터를 비교해서 앞에있는 데이터가 뒤에있는 데이터 보다 크면, 자리를 바꾸는 정렬 알고리즘 for index in range(데이터길이-1): for index2 in range(데이터길이 -1): if 앞데이터 > 뒤데이터: swap(앞데이터 , 뒤데이터) for index in range(데이터길이-1): for index2 in range(데이터길이 -1): if 앞데이터 > 뒤데이터: swap(앞데이터 , 뒤데이터) -> 이 형태를 외우자

선택정렬

1. 주어진 데이터 중 최소 값을 찾는다.* 다음과 같은 순서를 반복하며 정렬하는 알고리즘 1. 주어진 데이터 중, 최소값을 찾음 2. 해당 최소값을 데이터 맨 앞에 위치한 값과 교체함 3. 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복함 어떻게 코드로 만들까? * 데이터가 두 개 일때 - 예: dataList = [9, 1] - data_list[0] > data_list[1] 이므로 data_list[0] 값과 data_ list[1] 값을 교환 * 데이터가 세 개 일때 - 예: data_list = [9, 1, 7] - 처음 한번 실행하면, 1, 9, 7 이 됨 - 두 번째 실행하면, 1, 7, 9 가 됨 * 데이터가 네 개 일때 - 예: data_list = [9, 3, 2, 1] - ..

반응형
반응형