TILING2 (하, p. 252)

소요 시간: 1분 이내

가장 기본적인 DP문제

이게 왜 DP문제 맨 앞에 안나오고 조금 뒤에 나온건지 잘 모르겠음.

너무 쉬운 문제라 그냥 넘어갈까 고민함.

Algospot 문제에는 그림이 안보여서 책에 있는 그림을 참고하면 되지만,

설명만 봐도 무슨 문제인지 알 수 있긴 함.

image.png

#include <bits/stdc++.h>
using namespace std;
const int M = 1e9+7;
int d[101];
int f(int x) {
    if(x<=1) return 1;
    int & ret = d[x];
    if(ret) return ret;

    return ret = (f(x-1) + f(x-2))%M;
}
int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int tc; cin >> tc;
    while(tc--) {
        int n; cin >> n;
        memset(d,0,sizeof(d));
        printf("%d\n", f(n));
    }
    return 0;
}