[백준] 2011번 암호코드

거북이·2023년 7월 16일
0

백준[골드5]

목록 보기
61/82
post-thumbnail

💡문제접근

  • 정답률이 20%라 많이 어려운 문제라고 생각했는데 의외로 쉬웠던 문제였다. 근데 마지막의 문제 조건에 보면 나타낼 수 있는 가짓수가 많으니 1000000으로 나눈 나머지를 출력하라는 조건을 제대로 보지 않아 계속 틀렸다^^;;

💡테스트케이스

입력

012

출력 ---> 왜냐하면 0은 어떤 방법을 사용하더라도 나타낼 수 없기 때문에

0

💡코드(메모리 : 31388KB, 시간 : 48ms)

import sys
input = sys.stdin.readline

num = list(input().strip())
dp = [0] * (len(num) + 1)
dp[0] = 1
dp[1] = 1

# 시작값이 0이면? → 애초에 나타낼 수 없으므로 0이 답
if num[0] == "0":
    print(0)
else:
    for i in range(2, len(num) + 1):
        if int(num[i-1]) > 0:
            dp[i] = dp[i-1]
        if 10 <= int(num[i-2] + num[i-1]) <= 26:
            dp[i] += dp[i-2]
    print(dp[-1] % 1000000)

💡소요시간 : 32m

1개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

답글 달기