yha97 2022. 12. 26. 14:33

날짜 : 2022. 12. 26

사용 언어 : python

 

문제

 

 

코드

import sys

n = int(sys.stdin.readline())
dp = [1] * 10
for i in range(n-1):
    for j in range(1, len(dp)):
        dp[j] = dp[j] + dp[j-1]
res = 0
for i in range(10): res += dp[i]

print(res%10007)

 

 

풀이

- 뒷자리를 기준으로 점화식을 만들어 풀이한다.

 

 

알게된 점

- 맨 앞자리를 기준으로 문제에 접근하다보니 상당히 복잡한 문제였다.

- 한시간정도 고민하다 도저히 안될거같아 구글링하니까 반대로 뒷자리를 기준으로 계산하는 것이 메인이었다.

 

 

참고 사이트

- https://animoto1.tistory.com/entry/%EB%B0%B1%EC%A4%80-11057-%EC%98%A4%EB%A5%B4%EB%A7%89-%EC%88%98-%ED%8C%8C%EC%9D%B4%EC%8D%AC-Python

 

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

https://www.acmicpc.net/problem/11057 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이

animoto1.tistory.com