[문제 링크] : https://www.acmicpc.net/problem/2011
#include <iostream>
using namespace std;
int DP[5001];
int main(){
string S;
cin >> S;
DP[0] = DP[1] = 1;
for(int i=2; i<=S.size(); i++){
if(S[i-1] != '0'){
DP[i] = DP[i-1] % 1000000;
}
int res = (S[i-2] - '0') * 10 + (S[i-1] - '0');
if(res >= 10 && res <= 26){
DP[i] = (DP[i] + DP[i-2]) % 1000000;
}
}
if(S[0] == '0') cout << 0 << "\n";
else cout << DP[S.size()] << "\n";
return 0;
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 2789 - 유학 금지 (C++) (0) | 2024.09.01 |
---|---|
[알고리즘] 백준 1522 - 문자열 교환 (C++) (0) | 2024.08.31 |
[알고리즘] 백준 1516 - 게임 개발 (C++) (0) | 2024.08.29 |
[알고리즘] 백준 11779 - 최소비용 구하기 2 (C++) (0) | 2024.08.28 |
[알고리즘] 백준 4179 - 불! (C++) (0) | 2024.08.27 |