선릉역 1번 출구
baekjoon - 2193 본문
problem. 0으로 시작x, 1은 연속으로 들어갈 수 없음
key point
1 | 2 |
1 | 10 |
0으로 시작할 수 없으니 길이가 1인 경우는 1뿐이다. 그리고 길이가 2인 경우는 1뒤에 1이 연속으로 올 수 없기 때문에 10뿐이다.
핵심 포인트는 1뒤에는 1이 올 수 없으니 길이가 n이면서 마지막 숫자가 1인 경우는 n-1에서 마지막 숫자가 0으로 끝나는 수와 같다. 0의 경우는 1, 0 뒤에 모두 올 수 있기 때문에 이전 n-1의 sum()값이다.
그럼 이제 배열은 선언해주어야 하는데 type이 0, 1 2개이기 때문에 dp[n + 1][2]으로 선언을 해준다.
n = int(input()) dp = [[0 for _ in range(2)] for _ in range(n + 1)] dp[1][1] = 1 for i in range(2, n + 1): dp[i][0] = sum(dp[i - 1]) dp[i][1] = dp[i - 1][0] print(sum(dp[n])) |
'Algorithm > Algorithm 문제풀이' 카테고리의 다른 글
baekjoon - 14002 (0) | 2021.09.16 |
---|---|
baekjoon - 11053 (0) | 2021.09.15 |
baekjoon - 10844 (0) | 2021.09.13 |
baekjoon - 15990 (0) | 2021.09.13 |
baekjoon - 10799 (0) | 2021.08.30 |
Comments