9. C++ 미로찾기(Queue, Maze)
Queue를 이용한 미로찾기 예제입니다. 1. "1"로만 이동 가능하고, 0은 이동 불가 1,1,0,0,0 0,1,1,1,1 0,0,1,1,1 0,0,0,0,1 2. 시작 (0,0)을 1로 할 때, (3,4)에서 탈출하면, 최단경로는 8. 3. 코드 #include #include #include using namespace std; vector ans; void solution(vector maze) { int dx[4] = {-1,1,0,0}; int dy[4] = {0,0,-1,1}; ans[0][0] = 1; queue x; queue y; x.push(0); y.push(0); int row, col; while (!x.empty()) { row = x.front(); col = y.front(..
2021. 8. 19.
8. C++ 동적프로그래밍, 재귀, Top Down, Bottom Up, 피보나치
* 개인 공부를 위하여 간단하게 정리한 것입니다. * 틀린 부분 지적은 늘 환영입니다. 일반적으로, 프로그래밍에서 피보나치 수열은 재귀함수를 통하여 구현합니다. 그러나 만약 a(n)의 피보나치 수열을 구할 때, 시간복잡도는 2^n이 되어 문제가 됩니다. 동적프로그래밍을 이용하여 피보나치 수열을 구하는 방법을 알아보겠습니다. 1. 피보나치 수열 (Fibonacci Sequence) 1, 1, 2, 3, 5, 8, 13, 21 ... 과 같은 형태로 나타나는 수열 1.1. 피보나치 수열의 점화실 a(n+2) = a(n+1) + a(n) (n >=3, a(1) = a(2) = 1) 2. 재귀함수 (Recursive Function) a(1) = a(2) = 1 a(n) = a(n-1) + a(n-2) if) ..
2021. 8. 19.