변형 계단 수

시간 제한1초메모리 제한512 MB

요약
인접한 자릿수의 차이가 1이고 같은 방향으로 3번 연속 증가하거나 감소하지 않는 길이 N의 수의 개수를 1,000,000,007로 나눈 나머지로 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 수학, 조합론, 구현
정답자
아직 제출이 없습니다

문제

45656이란 수를 보자.

이 수는 인접한 모든 자릿수의 차이가 1이 난다. 이런 수를 계단 수라고 한다.

재현이는 계단 수에 조건을 하나 추가하여 변형 계단 수라고 부르려고 한다. 조건은 이러하다.

  • 인접한 자릿수는 연속으로 3번 이상 증가하거나 감소할 수 없다.

예를 들어, 45656이란 수는 변형 계단 수이지만 45676은 4567에서 인접한 자릿수가 연속으로 3번 증가하였으므로 변형 계단 수가 아니다.

그럼, 오늘도 역시 세준이는 수의 길이가 N인 변형 계단 수가 몇 개 있는지 궁금해졌다.

N이 주어질 때, 길이가 N인 변형 계단 수가 총 몇 개 있는지 구하는 프로그램을 작성하시오. (변형 계단 수는 0으로 시작할 수 있다.)

입력

첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다.

출력

첫째 줄에 정답을 1,000,000,007으로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    4
    
    예상 출력
    50