문제
- 파도반 수열은 1 1 1 2 2 3 4 5 7 9 12 ... 이다
- 4번째 수인 2부터 보면 2번째 수와 1번째 수를 더한 값이다.
- 6번째 수인 3은 4번째 수인 2와 3번째 수인 1을 더한 값이다.
- n번째 수는 n-2번째 수와 n-3번째 수를 더 한 값이다.
풀이
- N은 100까지밖에 안되므로 미리 구해놓자
- dp 배열을 100인덱스까지 만들어놓고 1 2 3 번째는 1로 초기화.
- 4번째 부터 위에서 말한 규칙을 적용하여 dp배열을 미리 만들어 놓음
코드
num = int(input())
dp = [0 for i in range(101)]
dp[1] = 1
dp[2] = 1
dp[3] = 1
for i in range(4,101):
dp[i] = dp[i-2] + dp[i-3]
for _ in range(num):
test = int(input())
print(dp[test])
728x90
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[백준] 2108 통계학 파이썬 풀이 (정렬) (0) | 2021.06.23 |
---|---|
[백준] 1149 RGB거리 파이썬 풀이(동적 계획법) (0) | 2021.06.23 |
[백준] 9184 신나는 함수 실행 파이썬 풀이 (동적계획법) (0) | 2021.06.23 |
[백준] 11866 요세푸스 문제 0 파이썬 풀이 (큐, 덱) (0) | 2021.06.22 |
[백준] 7576 토마토 파이썬 풀이 (BFS) (0) | 2021.06.22 |