[파이썬] 백준 11057 : 오르막 수 (실버1)
11057번: 오르막 수
오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수
www.acmicpc.net
문제
풀이
방향성 생각
2차원 dp 배열을 만들준다.
0부터 시작할 수 있으니 모든 시작점을 1로 초기화한다.
마지막 숫자가 n보다 같거나 큰 숫자들은 모두 등장할 수 있다.
0보다 같거나 작은 수라 생각해도 무방하다 (대칭형)
dp[자리수][선택한 숫자] = sum(dp[이전 자리수][0부터 선택한 숫자까지])%k
전체 코드
n = int(input())
dp = [[0]*10 for i in range(n)]
dp[0] = [1]*10
k = 10007
for dist in range(n-1):
for i in range(10):
dp[dist+1][i] = sum(dp[dist][0:i+1])%k
print(sum(dp[-1])%k)
'Algorithm > Dynamic Programming' 카테고리의 다른 글
[파이썬] 프로그래머스 : 에어컨 (Lv.3) (0) | 2023.08.04 |
---|---|
[파이썬] 백준 21317 : 징검다리 건너기 (실버1) (0) | 2023.07.30 |
[파이썬] 백준 2670 : 연속부분최대곱 (실버4) (0) | 2023.07.30 |
[파이썬] 백준 2156 : 포도주 시식 (실버1) (0) | 2023.07.24 |
[파이썬] 백준 17404 : RGB거리 2 (골드4) (0) | 2023.07.22 |
[파이썬] 백준 1149 : RGB거리 (실버1) (0) | 2023.07.20 |
[파이썬] 백준 1562: 계단 수 (골드1) (0) | 2023.07.18 |
댓글