{Programing}(131)
-
알고리즘 - 다익스트라(dijkstar) 알고리즘
최단 경로를 찾기 위해 사용하는 알고리즘. 하나의 출발점부터 모든 정점으로의 최단 거리를 계산하는 알고리즘. 1. 시작점 결정 2. 전체 거리를 무한대(코드상에서는 0)로 설정. 3. 현재 위치에서 갈수 있는 정점 저장. 전체거리를 최소로 늘릴수 있는 경로를 갱신. 불가능하면 스킵. 4. 선택하지 않았던 정점중 가장 짧은 거리에 있는 정점을 현재 정점으로 갱신. 5. 3~4 번 반복. 단순 구현으로는 시작점에서 각 정점에 대한 거리를 배열에 저장해가면서 각 정점으로의 최단 경로들을 찾아가는 방법이 있다... 10개의 정점을 가지는 그래프라고 가정할때 10개의 요소를 가지는 배열에 순서대로 각 정점에 대한 최단 경로를 저장하는 것. 당연히 자기 자신으로의 경로는 0의 거리를 가진다. 효율적인 구현으로는 우..
2020.03.06 -
Graph
그래프는 저장된 자료들사이의 관계를 나타내기를 위한 구조. 정점(Vertex) : 자료를 나타내는 단위로 리스트나 트리의 노드와 같은 의미. 간선(Edge) : 정점을 연결하는 선을 의미하며 자료사이의 관계를 나타냄. 가중치(Weight) : 한 정점에서 다른 정점으로 이동하는데 필요한 자원을 나타냄. 즉, 간선의 값. 가중치를 표시하지 않는다면 1로 생각해도 무방. 차수(Degree): 그래프에 연걸된 간선 수. 노드사이의 모든 연결 간선수를 나타냄. - 입력 차수 : 방향성 그래프일때 노드로 들어오는 간선수. - 출력 차수 : 방향성 그래프일때 노드에서 나가는 간선수. 단순 경로 : 그래프의 한 정점에서 다른 정점으로의 경로 중, 모든 정점을 단 한번씩만 방문하는 경로. 사이클(Cycle) : 단순 ..
2020.03.05 -
알고리즘 - DFS(Depth First Search)
그래프 탐색법 중 하나. 완전탐색이나 백트래킹등 탐색의 횟수, 그래프 경로가 정해져있거나 예측 가능한 경우의 문제에 사용. 1. 선택한 정점에서 해야할 작업 진행. 2. 선택한 정점에서 연결된 정점중 아직 방문하지 않은 정점 방문 3. 더 방문할 정점이 없으면(전부 방문 or 연결 정점 없음.) 이전 정점으로 되돌아감. 4. 1~3 반복. 이전 정점으로 되돌아가는 기능을 위해 Stack을 사용함. -> 재귀함수로도 가능함.
2020.03.05 -
알고리즘 -BFS(Breadth First Search)
그래프를 탐색하는 방법중 하나. 최단거리, 최소비용등 최솟값을 구하는 문제에 적용할 수 있는 방법. 그래프 정점 사이의 거리가 1일때만 가능. 0. 시작할 정점을 저장함. 1. 저장된 정점에서 첫번째 정점를 선택. 저장에서 제거 2. 제거한 정점에서 할 작업 선택. 3. 제거한 정점과 연결된 정점중 방문하지 않은 모든 정점 저장. 4. 저장한 정점이 모든 노드가 삭제 될때까지 2~3 반복. 저장할 자료구조는 큐로 하는것이 편함.. 앞에서부터 탐색해나가야되기 때문. FIFO 구조면 저장된 정점을 앞에서 부터 하나씩 볼수 있기 때문.
2020.03.05 -
알고리즘 - 분할 정복(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.03.05 -
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.03.04