본문 바로가기
백준/실버 1

10844번 - 쉬운 계단 수(Python)

by 김주현3902 2025. 1. 25.

풀이

dp를 이용해 계단 수를 저장한다.

 

dp[i][j]는 자릿수가 i이고, 끝자리가 j인 계단 수를 의미한다.

자릿수가 1일때는 1부터 9까지만 1을 대입한다.(0이 올 수 없으므로)

이후에는 자릿수가 하나 적고, 끝자리가 j-1, j+1인 경우를 더해서 dp에 대입하면 된다.

(dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1], j가 10일 때 dp값을 모두 0으로 초기화했기에 9를 따로 신경쓰지 않는다.)

코드

N = int(input())
dp = [[0 for _ in range(11)] for _ in range(N+1)]

for a in range(1, 10):
    dp[1][a] = 1
for i in range(2, N+1):
    for j in range(10):
        dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]

print(sum(dp[N]) % 1000000000)

'백준 > 실버 1' 카테고리의 다른 글

1991번 - 트리 순회(Python)  (0) 2025.02.05
14888번 - 연산자 끼워넣기(Python)  (0) 2025.02.04
2156번 - 포도주 시식(Python)  (0) 2025.01.25
1932번 - 정수 삼각형(Python)  (0) 2025.01.24
1697번 - 숨바꼭질(Python)  (0) 2025.01.24