https://www.acmicpc.net/problem/2193
2193번: 이친수
0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않
www.acmicpc.net
이번에도 0, 1로 끝나는 수의 개수를 dp에 넣어 2차원 형태로 진행하였다
0 -> 0, 1
1 -> 0
import sys
n = int(sys.stdin.readline())
# 0, 1로 끝나는 수의 개수
dp = [[0,0] for _ in range(91)]
dp[1] = [0, 1]
dp[2] = [1, 0]
dp[3] = [1, 1]
for i in range(4, n+1):
dp[i][0] = dp[i-1][0] + dp[i-1][1]
dp[i][1] = dp[i-1][0]
print(sum(dp[n]))
다른분들 풀이를 살펴보니 2차원으로 푼 사람은 별로 없다..?!
위와 같은 점화식이 나올수있다
# # sol2
import sys
n = int(sys.stdin.readline())
dp = [0] * 91
dp[1] = 1
dp[2] = 1
for i in range(3, n+1):
dp[i] = dp[i-1] + dp[i-2]
print(dp[n])
시간도 더 빠르다!!
'공부 > 알고리즘' 카테고리의 다른 글
[알고리즘][백준] 14002번 가장 긴 증가하는 부분 수열 4 - 파이썬(python) 풀이 (0) | 2024.03.08 |
---|---|
[알고리즘][백준] 11053번 가장 긴 증가하는 부분 수열 - 파이썬(python) 풀이 (0) | 2024.03.07 |
[알고리즘][백준] 10844번 쉬운 계단 수 - 파이썬(python) 풀이 (0) | 2024.03.06 |
[알고리즘][백준] 15990번 1, 2, 3 더하기 5 - 파이썬(python) 풀이 (2) | 2024.03.05 |
[알고리즘][백준] 16194번 카드 구매하기 2 - 파이썬(python) 풀이 (0) | 2024.03.05 |