암호코드

BiBi·2021년 1월 15일
0

코딩테스트연습

목록 보기
17/66

#include <iostream>
using namespace std;
#include <stdio.h>
#define mod 1000000


int code[5001];
int d[5001];

int main() {
	//freopen("input.txt", "rt", stdin);

	string s;
	cin >> s;
	int len = s.length();
	if (len > 5000) {
		exit(-1);
	}
	for (int i = 0; i < len; i++) {
		code[i + 1] = s[i] - '0';
	}

	if (code[1] == 0) {
		printf("0\n");
		return 0;
	}
	else {
		d[0] = 1;
		for (int i = 1; i <= len; i++) {
			if (code[i] >= 1 && code[i] <= 9) {
				d[i] = (d[i] + d[i - 1]) % mod;
			}
			int twoDigit = code[i - 1] * 10 + code[i];
			if (twoDigit >= 10 && twoDigit <= 26) {
				d[i] = (d[i] + d[i - 2]) % mod;
			}
		}
		printf("%d\n", d[len]%mod);
	}

	return 0;
}
profile
Server Network Engineer

0개의 댓글