https://www.acmicpc.net/problem/11727
1.전체코드
#include <bits/stdc++.h>
using namespace std;
long long d[1004],n;
//2*i 직사각형을 채우는 방법의 수
//d[i]=
//첫째사각형 1*2인 경우 : d[n-2]
//첫째사각형 2*1인 경우 : d[n-1]
//첫째사각형 2*2인 경우 : d[n-2]
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
d[1] = 1;
d[2] = 3;
cin >> n;
for (int i = 3; i <= n; ++i) {
d[i] = (d[i - 2] + d[i - 1] + d[i - 2])%10007;
}
cout << d[n];
}
'Algorithm > dp' 카테고리의 다른 글
백준 1912 연속합 c++ [hard]// dp, 연속합중 최대값 구하는 방법 (0) | 2023.10.10 |
---|---|
백준 2193 이친수 c++ // dp, overflow 해결방법 long long (0) | 2023.10.10 |
백준 1003 피보나치 함수 c++ // dp (0) | 2023.10.10 |
프로그래머스 43105 정수삼각형 c++ // dp , 인덱스에 주의하자, 일반식을 정확하게 짜는방법 (0) | 2023.10.10 |
백준 12852 1로만들기 2 c++ // dp, 경로복원 하는 방법 pre[i] (0) | 2023.10.09 |