백준10844 - 쉬운 계단 수 (DP) python 본문
반응형
https://www.acmicpc.net/problem/10844
문제는 문제에서 제시된 것처럼 모든 자리의 차이가 1인 계단수의 갯수를 출력하는 문제다.
문제 풀이 방식
1 ~ 8까지의 수는 각각 2개의 수 (예를 들어 1의 경우 0과 2가 다음에 올 수 있는 계단수)를 가진다고 할 때, 0과 9는 각각 1과 8밖에 계단수를 갖지 못한다는 점으로 점화식을 수립하여 로직을 구현했다.
단 1의 자리 수의 경우는 먼저 0이 올 수 없으므로 이 점만 유의하면 된다.
import sys
data_temp = sys.stdin if sys.platform == 'linux' else open('입력.txt', 'r')
input_data = data_temp.read().splitlines()
def solution (data) :
N = int(data[0])
dp = [[0] * 10 for _ in range(N)]
for i in range(9) :
dp[0][i+1] = 1
for i in range(1, N) :
for j in range(10) :
if j == 0 : dp[i][j] = dp[i-1][1]
elif j == 9 : dp[i][j] = dp[i-1][8]
else : dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1]
result = sum(dp[-1]) % 1000000000
print(result)
solution(input_data)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준2578 - 빙고 node.js (1) | 2024.01.09 |
---|---|
백준20364 - 부동산 다툼 (트리) Python (1) | 2024.01.05 |
백준20040 - 사이클 게임 (스패닝 트리) node.js (1) | 2024.01.03 |
백준23757 - 아이들과 선물 상자 (Heap) python (0) | 2024.01.02 |
백준18511 - 큰 수 구성하기 (재귀) python (1) | 2023.12.31 |
Comments