[2011] 암호코드
·
Coding Test/DP
2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 분석 10 ≤ 현재 숫자와 바로 그 앞자리 숫자 ≤ 26일 때, 두자리가 가능한 숫자 dp[i] += dp[i-2] : 앞자리 숫자 앞의 DP[현재숫자인덱스-2]에 저장되어있는 값을 DP[현재숫자]에 넣어줌 1 ≤ 현재 숫자 ≤ 9 dp[i] += dp[i-1] : 앞자리 숫자의 DP[앞자리숫자] 또한 DP[현재숫자]에 넣어줌 풀이 code = list(map(int, input())) n = len(code) dp=[0]*(n+1) dp[0]=1 dp[1]=1 if code[0..
알파코드(DFS)
·
Coding Test/Search
분석 풀이 """ 알파벳 A에는 1로, B에는 2로 이렇게 해서 Z에는 26을 할당 "BEAN"을 암호화하면 25114 알파벳으로 바꾸면 BEAAD, YAAD, YAN, YKD, BEKD, BEAN ... 암호화된 코드가 주어지면 그것을 알파벳으로 복원하는데 얼마나 많은 방법인 있는지 입력된 코드를 알파벳으로 복원하는데 몇 가지의 방법이 있는지 각 경우를 출력, 그 가지 수도 출력 단어의 출력은 사전순으로 출력 """ code=list(map(int, input())) n=len(code) # 종착점 code.insert(n,-1) # 마지막값