
➤ Problem Link : ACODE
👉 Hint : Simple 1D DP
✅ C++ Solution :
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
while(1)
{
string s;
getline(cin,s);
if(s=="0")
break;
int arr[s.length()+1];
memset(arr,0,sizeof(arr));
arr[0]=1;
for(int i=1;i<s.length();i++)
{
if(s[i]!='0')
arr[i]=arr[i-1];
if(s[i-1]=='1'||(s[i-1]=='2' && s[i]<='6'))
{
if(i==1)
arr[i]+=1;
else
arr[i]+=arr[i-2];
}
}
cout<<arr[s.length()-1]<<endl;
}
return 0;
}
I am a Member Technical at D.E. Shaw India Pvt. Ltd. CodingWithArt is a blog where you find tricks and solutions to challenging coding and development problems. I aim to build a universal tech platform for every enthusiast out there.