백준 11057 오르막 수

김민영·2023년 1월 12일
0

알고리즘

목록 보기
62/125

과정

  • 잘 이해되지 않으면 10844 쉬운 계단 수 를 먼저 이해하고 오자.
  • 2차원 DP. 행 인덱스를 숫자 길이, 열 인덱스를 끝나는 수로 생각하자.
  • i 길이이고, j로 끝나는 수 중 오르막 수의 개수는 i-1 길이이고, j보다 작거나 같은 수로 끝나는 수의 개수이다.
N = int(input())
dp = [[0] * 10 for _ in range(N+1)]
# 행 인덱스를 숫자 길이, 열 인덱스를 끝나는 수로 생각.
for i in range(1, N+1):
    if i == 1:
        dp[1] = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
    else:
        for j in range(10):
            dp[i][j] = sum(dp[i-1][:j+1])
print(sum(dp[N]) % 10007)
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글