세상을 더 좋게

[백준] 11057 '오르막 수' 파이썬(python) 본문

Algorithm/DP

[백준] 11057 '오르막 수' 파이썬(python)

나는SOU 2021. 12. 22. 00:00

https://www.acmicpc.net/problem/11057

 

11057번: 오르막 수

오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수

www.acmicpc.net

n = int(input())

dp = list([[1] * 10])

for _ in range(n):
    dp.append(list([0] * 10))
    
for i in range(1, n+1):
    for j in range(0, 10):
        for col in range(j+1):
            dp[i][j] += dp[i-1][col]
            
print(dp[n][9] % 10007)

Point

  • dp테이블을 만들고 첫수를 기준으로 점차 테이블 값들을 바꿔 활용하는 DP 문제
  • DP문제의 핵심은 규칙을 수단과 방법을 가리지 않고 찾아내는 것이다.