BOJ - 11057

주의·2024년 1월 31일
0

boj

목록 보기
158/214

백준 문제 링크
오르막 수

❓접근법

  1. DP = [1] * 10으로 설정한다. (0 ~ 9 까지의 숫자 카운트를 나타냄)
  2. N번 동안 DP의 값을 변환시킬 건데,
    N = 1이면 [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    그 이유는 N = 1 (한자리 수) 이면 최댓값이 0 ~ 9인 10개이기 때문이다.
    N = 2이면 [55, 45, 36, 28, 21, 15, 10, 6, 3, 1]
    그 이유는 N = 2 (두자리 수) 이면 최댓값이
    00 ~ 09 : 10개, 11 ~ 19 : 9개, ... 99 : 1개
    총 55개가 최대이기 때문이다.
  3. DP[0] 를 10007로 나눴을 때 나머지를 출력하면 끝!

👌🏻코드

N = int(input())

DP = [1] * 10

for _ in range(N):
    
    for j in range(10):
        DP[j] = sum(DP[j:])
        
print(DP[0] % 10007)

0개의 댓글