문제링크 : 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 문제인것만 알면 점화식 찾는것은 간단한 문제다.
'Coding > 백준' 카테고리의 다른 글
[백준] 치킨 배달 - 백준 15686 | 골드 V (0) | 2025.04.18 |
---|---|
[백준] 1912 - 연속합(DP) - (python 파이썬) (0) | 2022.02.28 |
[백준] 1697 - 숨바꼭질(BFS) - (python 파이썬) (0) | 2022.02.17 |
[백준] 11576 - Base Conversion - (python 파이썬) (0) | 2022.02.14 |
[백준] 2156 - 포도주 시식(Dynamic programming) - (python 파이썬) (0) | 2022.02.11 |