동적계획법 3

백준 9461 c++ 풀이

안녕하세요 오늘은 동적 계획법 문제를 풀어볼 것입니다. 전략: 1. P(n)의 값을 n+1번째 원소로 하는 배열을 선언해주고, P(n) 함수를 선언해준다. 2. P(n) = P(n-2) + P(n-3)임을 이용하여 P(n)함수를 정의해준다. 코드: #include using namespace std; long long int arr[101] = {0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, }; long long int P(int n){ if(arr[n]){ return arr[n]; } else{ arr[n] = P(n-2) + P(n-3); return arr[n]; } } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); i..

BOJ 문제풀이 2021.08.31

백준 2748번 c++ 풀이

안녕하세요 오늘은 동적계획법을 이용한 피보나치 수열 문제를 풀어보겠습니다. 전략: 1. long long int타입으로 v라는 array를 생성해줍니다. 2. long long int타입으로 return하는 fibo라는 함수를 선언해주고, 0이면 0을, 1이면 1을 반환해줍니다. 3. 만약 v[n]이 비어있다면 v[n]은 fibo(n-1) + fibo(n-2)로 넣어주고, 차있다면 v[n]을 반환해줍니다. 코드: #include using namespace std; long long int v[100]; long long int fibo(int n){ if(n==0){ return 0; } else if(n==1){ return 1; } if(!v[n]){ v[n] = fibo(n-1) + fibo(n-..

BOJ 문제풀이 2021.08.14