728x90
반응형
https://www.acmicpc.net/problem/2193
2193번: 이친수
0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않
www.acmicpc.net
문제 해결
- 다이나믹 프로그래밍(dp)인 것은 쉽게 눈치 챌 수 있다.
- n자리 이친수 개수를 dp[n]으로 놓을 때 dp[n] = dp[n-1] + dp[n-2]임을 알아야 한다.
그림판으로 그리면
dp[n]=dp[n-1] + dp[n-2]임을 알 수 있다.
CODE
import sys
input= sys.stdin.readline
n = int(input())
dp = [0 for _ in range(91)]
dp[1] = 1 #한자리 수는 1 한개
dp[2] = 1 # 두자리는 10 한개 11은 안되므로
if n>2:
for i in range(3,n+1):
dp[i] = dp[i-1] + dp[i-2]
print(dp[n])
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[Python] 백준 1699 제곱수의 합 (0) | 2022.12.25 |
---|---|
[Python] 백준 2225 합분해 (0) | 2022.12.24 |
[Python] 백준 25682 체스판 다시 칠하기 2 (0) | 2022.12.22 |
[Python] 백준 11726 2Xn 타일링 (1) | 2022.12.22 |
[Python] 백준 11576 Base Conversion (0) | 2022.12.22 |
댓글