2011 암호코드
Contents
https://www.acmicpc.net/problem/2011
풀이:
- dp[a]를 a자리 까지 숫자를 암호화 할 수 있는 가짓수 라고 하자.
- (a - 1) * 10 + a 가 10~26 사이라면 dp[a] = dp[a - 1] + dp[a - 2] 가 된다.
- 10~26 사이가 아니라면, dp[a] = dp[a - 1] 이 된다.
- 이 때, a 가 0 이라면, 암호를 해석 할 수 없으므로 0을 출력한다. (이 때, (a - 1 * 10 + a) 가 10 ~ 26 사이라면 가능하므로 주의하자)
- 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다.
- 1번째 자리의 숫자가 0이라면 무조건 암호가 잘못되어 있으므로 0을 출력한다.
코드:
사용언어 : c++
{% highlight c++ %}
#include