암호코드를 해석할 수 있는 경우의 수를 찾는 문제이다.
1과 27 사이의 알파벳번호를 이용하여 만든 암호이다. 만약 숫자열이 주어진다면 해석하면 무엇을 만들 수 있을지 모든 경우의 숫자를 체크한다.
위의 경우를 이용하여 두가지의 조건을 세울 수 있다.
n = input()
len_n = len(n)
dp = [0 for i in range(len(str(n)) + 1)]
if int(n[0]) == 0:
print(0)
else:
n = '0'+ n
dp[0] = 1
dp[1] = 1
for i in range(2, len_n + 1):
if n[i] >= '1' and n[i] <= '9':
dp[i] += dp[i-1]
if n[i-1] + n[i] < '27' and n[i-1] + n[i] >= '10':
dp[i] += dp[i-2]
print(dp[len_n] % 1000000)