코딩테스트/BOJ

[백준][DP] 2193. 이친수

박소민 2024. 2. 28. 21:15
2193. 이친수
 

2193번: 이친수

0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않

www.acmicpc.net

 

  • 내 풀이
    • 앞의 값이 0일때 (0, 1) 2개씩 늘어나고
    • 앞의 값이 1이면 그다음은 무조건 0
      • → 앞의 0과 1 개수로 뒤의 개수를 구함 
n = int(input())
dp = [[0, 0] for _ in range(91)]
dp[1] = [0, 1]
dp[2] = [1, 0]
for i in range(3, n+1):
    # 0의 개수
    dp[i][0] = sum(dp[i-1])
    # 1의 개수
    dp[i][1] = dp[i-1][0]

print(sum(dp[n]))