만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

코딩

면접 대비

시간 제한1초메모리 제한1024 MB

요약
인접한 두 자리 숫자 쌍(값 10부터 10+n-1)을 겹치지 않게 골라 첫 n개 알파벳으로 바꿀 때 만들 수 있는 서로 다른 문자열의 개수를 센다.
난이도

보통10점 중 5점

유형
동적 계획법, 문자열, 조합론, 해시맵
정답자
아직 제출이 없습니다

문제

'0'부터 '9'까지의 숫자로 이루어진 문자열이 주어진다. 이 문자열에서 연속한 숫자 두 개로 이루어진 쌍 몇 개를 다음 규칙에 따라 라틴 알파벳 소문자로 바꾸어 코딩한다: 10 → 'a', 11 → 'b', 12 → 'c', …, 34 → 'y', 35 → 'z'. 예를 들어 문자열 "1234"에서 첫 번째 숫자 쌍을 12에 해당하는 문자로 바꾸면 "c34"가 된다. 숫자 쌍 "23"을 문자 "n"으로 바꾸어 "1n4"로 코딩할 수도 있다. 두 연속 숫자 쌍을 모두 바꾸면 "cy"가 된다.

라틴 알파벳의 처음 n개 소문자를 사용해 주어진 숫자 문자열을 이 방식으로 코딩할 때 얻을 수 있는 서로 다른 문자열의 개수를 구하는 프로그램 code를 작성하라. 예를 들어 n = 5이면 'a', 'b', 'c', 'd', 'e'를 사용한다. n = 0이면 코딩에 문자를 사용하지 않는다.

입력

첫째 줄에 정수 n이 주어진다. 둘째 줄에 주어진 문자열이 주어진다.

출력

구하는 개수를 나타내는 정수 하나를 출력한다.

제한

0 ≤ n ≤ 26; 주어진 문자열은 숫자로 이루어져 있고 길이는 50 이하이다.

예제3

  1. 예제 1

    입력
    0
    10237
    
    예상 출력
    1
    
  2. 예제 2

    입력
    1
    10237
    
    예상 출력
    2
    
  3. 예제 3

    입력
    26
    10237
    
    예상 출력
    4