Coding/백준

[백준] 2193 - 이친수 - (python 파이썬)

Coding Kitsune 2022. 2. 26. 11:03

문제링크 : https://www.acmicpc.net/problem/2193

 

2193번: 이친수

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

www.acmicpc.net

 

풀이과정 :

전형적인 dp 문제인데, 처음에는 그 과정도 안보이고 점화식도 안보여서 고생했다.

 

10으로 시작하면서 101부터 시작은 dp[i-2]와 개수가 같고 100부터 시작은 dp[i-1]과

 

개수가 같다. 그러므로 초기에 자리수가 1,2,3 인 경우만 설정값으로 넣어주고,

 

나머지는 점화식 dp[i] = dp[i-2] + dp[i-1] 로 풀면 된다.

 

dp = [0, 1, 1, 2] + [0]*87
length = int(input())
for i in range(4, length+1):
    dp[i] = dp[i-2]+dp[i-1]
print(dp[length])

 

답(이미지)

 

후기 : dp 문제인것만 알면 점화식 찾는것은 간단한 문제다.