동적계획법 DP(Dynamic Programming) 이란 어떤 문제를 풀기 위해 과거에 구한 해를 활용하는 방식의 알고리즘을 말한다. 말로 설명하면 이해하기 어려울 수 있기 때문에 가장 대표적인 예시 피보나치 수열을 살펴보겠다. 피보나치 수열은 첫항과 둘째항이 1, 1로 그다음 항부터는 앞의 두 항을 더하는 식이다. f(n) = f(n-1) + f(n-2) 수식으로 표현하면 위와 같다. 123456789101112131415161718192021222324#includeusing namespace std;int f[100]={0}; int fib(int n){ if(n==0) return 0; else if(n==1) return 1; else if(f[n]) return f[n]; else{ f[n]..
BFS(Breath First Search)는 말그대로 너비를 우선 탐색한다. DFS는 연결된 노드를 계속 들어가며 재귀호출하는 방식이었지만 BFS는 이와 달리 queue를 이용해서 루트노드에 연결되어있는 모든 노드를 다 탐색 후에 다음 깊이로 들어간다. 소스로 확인하면 다음과 같다. 1234567891011121314151617181920212223242526272829303132333435#include#includeusing namespace std;int map[10][10]={0};int visit[10]={0};queue q;int num; void bfs(int v){ cout
DFS (Depth First Search) 깊이 우선탐색으로 말 그대로 탐색할 수 있는 만큼 깊게 들어가 순차적으로 탐색하는 방법이다. 아래와 같은 그래프 형태에서 한 시작점 노드(v)에서 연결된 모든 노드(w1,w2,w3)들 중 w1부터 탐색하는데 한번 w1를 탐색하면 해당노드(w1)에 연결된 노드들을 우선적으로 찾아 계속 연결된 노드를 탐색한다. w1의 탐색이 완료되면 다시 v기준으로 w2를 탐색하고 이를 반복한다. 이를 소스로 구현하면 다음과 같다.12345678910111213141516171819202122232425262728293031323334353637#includeusing namespace std;int maps[10][10];int visited[10]={0};int num;voi..
1. openCV를 설치한다. 2. Visual Studio 에서 프로젝트를 생성한다. 3. 프로젝트를 x64로 변경해준다. 4. 프로젝트 속성에서 구성을 모든구성 혹은 원하는 모드(Debug, Release)로 변경한다. 5. 왼쪽 항목중 C/C++ 에서 추가포함 디렉터리 항목에 openCV 파일 위치를 입력한다. \opencv\build\include 6. 왼쪽 항목중 링커에서 추가 라이브러리 디렉터리 항목에 openCV 라이브러리 위치를 입력한다. \opencv\build\x64\vc15\lib 7. 왼쪽 항목 중 링커>입력에서 추가 종속성 항목에 라이브러리 이름을 입력한다. debug : opencv_world400d.lib release : opencv_world400.lib 테스트 소스 #in..
- Total
- Today
- Yesterday