{Programing}131 알고리즘 - 분할 정복(Divide and Conquer) 전체의 큰 문제를 서로 다른 작은 문제로 나누어 풀고 합쳐서 전체 문제의 답을 구하는 알고리즘. 동적 계획법과 같아보이지만, 분할 정복은 "문제의 영역이 겹치지 않도록 나눈" 작은 문제로 푼다는 점이다. 1. 문제를 나눈다. 겹치지 않고 빠지는 경우가 없도록 나눈다. 2. 더이상 나눌수 없을때까지 1을 반복. 3. 분할이 끝나면 작은 문제들을 푼다. 4. 푼 문제들을 합쳐간다. 5. 전체 문제가 될때까지 4를 반복. 대표적인 문제 합병 정렬, a^n 구하기. a^n 구하기 1. n이 홀수일때 a^n을 a*a^(n-1) 로 나눈다. 2. n이 짝수일때 a^n을 a^(n/2)*a^(n/2) 로 나눈다. 더 나눌수 없을떄 까지 나누어 놓고 계산해서 점점 합쳐간다. 2020. 3. 5. Unreal Engine 4 - UE_LOG 에디터 상 출력 로그창에 로그 남기는 방법 기본 형식 UE_LOG(LogTemp, Warning, TEXT("Log Message")); 매개변수 Log Category : 로그를 구분할 카테고리 설정. 90종정도 있음. 기본으로 LogTemp 씀. 커스텀 로그 프로젝트 이름.h DECLARE_LOG_CATEGORY_EXTERN(카테고리 이름, 수준, All); 프로젝트 이름.cpp DEFINE_LOG_CATEGORY(카테고리 이름); Log Level : 로그의 수준을 설정해 중단이나 출력시 색을 구분함. Fatal : 수준이 제일 높아 출력되면 중단됨. Error : 오류 수준으로 빨간 색으로 출력. Warning : 경고 수준으로 노란색 출력. Display : 일반 수준으로 평범하게 출력. Log.. 2020. 3. 4. 알고리즘 - 이진 탐색(Binary Search) 이미 정렬된 배열 or 리스트에 대해 특정 원소가 포함되어 있는지 판단하는 알고리즘. 전체 범위에서 중심 값을 이용해 판단 기준을 체크함. ex) 오름차순 정렬일때 해당값이 중심값보다 크면 중심값 왼쪽은 무시. 중심값보다 작으면 오른쪽 무시. 범위 줄임. 줄인 범위의 중심값. 다시 조건 검색으로 원소 있으면 true 없으면 false 이미 정렬이 된 배열에 대해서는 O(logN) 정렬이 안된 배열에 대해서는 O(NlongN) 이 필요. 2020. 3. 4. 알고리즘 - 동적 계획법(Dynamic Programming) 큰 문제를 잘게 나누어 풀어놓고 그 해들을 이용해 큰 문제의 해를 찾는 방법. 1. 최적 부분 구조 : 문제의 답이 잘게 나눈 문제에 대해서도 답이어야함. 2. 부분 문제 반복 : Top - Down or Down - Top 으로 문제를 나누어 내려올 수 있음. 큰 문제와 나눈 문제와의 풀이법이 같아야함. 똑같은 문제를 여러번 푸는 낭비를 막기 위해 "메모이제이션" 기법을 사용. 메모이제이션 : 미리 구해둔 정답을 메모해놓고 만약 다음에 같은 문제를 다시 풀어야 하면 불러와서 쓰는 방법. 대표적 예) 점화식. 등비,등차수열 하향식 방법 : Top - Down 방식으로 큰 문제를 계속 나누어 풀 수 있을 정도까지 나누고 문제를 풀어서 다시 올라가는 방식. 상향식 방법 : Down - Top 방식으로 작은 .. 2020. 3. 4. 이전 1 ··· 14 15 16 17 18 19 20 ··· 33 다음