알고리즘 모음(C++)

백준 24416 - 알고리즘 수업 - 피보나치 수 1(C++) 본문

백준

백준 24416 - 알고리즘 수업 - 피보나치 수 1(C++)

공대생의 잡다한 사전 2023. 12. 14. 23:07

문제 링크입니다. https://www.acmicpc.net/problem/24416

24416번: 알고리즘 수업 - 피보나치 수 1

오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍

www.acmicpc.net

주어진 문제를 활용해 풀 수 있는 문제였습니다.


자세한 것은 코드를 참고해주세요.

#define _CRT_SECURE_NO_WARNINGS
#include <cstring>
#include <vector>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cmath>
#include <cstdio>
#include <string>
using namespace std;

int N;
int dp[41];
int cnt1, cnt2;

int fib(int n){
	if(n == 1 || n == 2) return 1;
	else{
		cnt1++;
		return (fib(n-1) + fib(n-2));
	}
}

void fibonacci(int n){
	dp[1] = 1;
	dp[2] = 1;
	for(int i = 3; i <= N; i++){
		cnt2++;
		dp[i] = dp[i-1] + dp[i-2];
	}
}

int main() {
	cin.tie(0);
	cout.tie(0);
	cin >> N;
	fib(N);
	fibonacci(N);
	cout << cnt1 + 1 << " " << cnt2;
	return 0;
}


질문 및 조언은 댓글을 남겨주세요.