백준 문제풀이/Dynamic Programming
BOJ 11727 : 2xn 타일링 2
준코딩
2020. 5. 15. 17:51
문제
문제 풀어보기
풀이
이거 하나만 확인하세요 !!
경우의 수를 계산하는 모든 과정에서
모듈러 연산을 하셨나요 ?
ㅎㅎ
코드
#include <iostream>
#include <vector>
using namespace std;
int d[1001][3];
#define mod 10007
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
d[1][1] = 1;
d[2][0] = d[2][1] = d[2][2] = 1;
for (int i = 3; i <= n; i++) {
d[i][0] = (d[i - 2][0] + d[i - 2][1] + d[i - 2][2])%mod ;
d[i][1] = (d[i - 1][1] + d[i - 1][0] + d[i - 1][2])%mod ;
d[i][2] = (d[i - 2][0] + d[i - 2][1] + d[i - 2][2])%mod ;
}
int ans = (d[n][0] + d[n][1] + d[n][2])%mod;
cout << ans << '\n';
return 0;
}