diff --git a/백준/Silver/10844. 쉬운 계단 수/README.md b/백준/Silver/10844. 쉬운 계단 수/README.md new file mode 100644 index 0000000..d552c53 --- /dev/null +++ b/백준/Silver/10844. 쉬운 계단 수/README.md @@ -0,0 +1,32 @@ +# [Silver I] 쉬운 계단 수 - 10844 + +[문제 링크](https://www.acmicpc.net/problem/10844) + +### 성능 요약 + +메모리: 32412 KB, 시간: 36 ms + +### 분류 + +다이나믹 프로그래밍 + +### 제출 일자 + +2025년 3월 4일 22:48:13 + +### 문제 설명 + +

45656이란 수를 보자.

+ +

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

+ +

N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다.

+ +### 입력 + +

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

+ +### 출력 + +

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

+ diff --git a/백준/Silver/10844. 쉬운 계단 수/쉬운 계단 수.py b/백준/Silver/10844. 쉬운 계단 수/쉬운 계단 수.py new file mode 100644 index 0000000..c65449f --- /dev/null +++ b/백준/Silver/10844. 쉬운 계단 수/쉬운 계단 수.py @@ -0,0 +1,20 @@ +import sys +input = sys.stdin.readline + +n = int(input()) + +D = [[0 for i in range(10)] for i in range(n+1)] + +for i in range(1, 10): + D[0][i] = 1 + +for j in range(1, n): + for k in range(10): + if k==0: + D[j][k] = D[j-1][k+1] + elif k==9: + D[j][k] = D[j-1][k-1] + else: + D[j][k] = (D[j-1][k-1] + D[j-1][k+1]) %1000000000 + +print(sum(D[n-1])%1000000000)