[백준] C++ 1003번 : 피보나치 함수
풀이과정 Dynamic Programming을 사용한다. 점화식을 구하면 1.f(0)일 때 0은 1, 1은 0번 출력된다. 2.f(1)일 때 0은 0, 1은 1번 출력된다. 3. n이 2보다 클 때 f(n)일 때, 0은 f(n-1)의 0 출력 횟수, f(n-2)의 0 출력 횟수 번 출력 된다. 1은 f(n-1)의 1 출력 횟수, f(n-2)의 1 출력 횟수 즉, f(n) = f(n-1) + f(n-2) 0과 1의 출력 횟수를 나타내는 pair형 배열 d[41](n이 40보다 작거나 같다) 에 점화식에 맞게 0과 1의 출력 횟수를 대입해준다. 코드 더보기 #include using namespace std; int main() { pair d[41] = { { 1,0 } ,{ 0, 1 } , }; int ..
[백준] C++ 9095번 : 1, 2, 3 더하기
풀이과정 1. 재귀 함수를 사용한다. 재귀함수의 인자인 값(currN)이 입력 받은 정수(N)와 같을 때까지 1,2,3만큼 증가시킨다. 인자의 값(currN)이 입력받은 정수 N과 같다면 횟수를 1 증가시켜 반환한다. currN이 N보다 크다면 0을 반환한다. 2. dp를 사용한다. 점화식은 f(1) = 1, f(2) = 2, f(3) = 4, 이후는 f(n) = f(n-1) + f(n-2) + f(n-3)이다. 코드 재귀 더보기 #include #include using namespace std; int Func(int N,int currN, int iCount) { if (N < currN) return 0; if (currN == N) return iCount+1; return Func(N, cur..