문제

문제 링크

어떻게 접근할 것인가

  • 이 문제은 디피로 접근할 수 있는 문제이다.
  • 이 문제는 2를 만들 수 있는 경우의 수가 2가지라는 특징을 가지고 있다.
  • 때문에 2를 이용해서 현재 위치로 온 경우에는 곱하기 2를 해주어야 한다.

코드

#include <cstdio>

int main(){
    int n, arr[1001];
    arr[1] = 1, arr[2] = 3;
    scanf("%d",&n);
    for(int i = 3; i <= n; i++)arr[i] = (arr[i-1] + arr[i-2] * 2) % 10007;
    printf("%d", arr[n]);
}

느낀점

  • 조아!