문제
https://www.acmicpc.net/problem/9095
설계
- DP
- 주어진 수의 3가지 경우의 수를 묶어 더하면 해당 수의 경우의 수를 나타낸다.
# 1 2 3 4 5... (number)
# 1 2 4 7 13... (total)
# 1 + 2 + 4 = 7
# 2 + 4 + 7 = 13
N = int(input())
arr = [int(input()) for _ in range(N)]
for i in range(N):
number = [1, 2, 4]
if arr[i] <= 3:
print(number[arr[i] - 1])
else:
for j in range(arr[i] - 3):
number.append(sum(number[0 + j:3 + j]))
print(number[-1])
'PS (Problem Solving) > Baekjoon' 카테고리의 다른 글
[백준] 12931. 두 배 더하기 - 파이썬 (0) | 2023.01.31 |
---|---|
[백준] 16198. 에너지 모으기 - 파이썬 (0) | 2023.01.31 |
[백준] 2748. 피보나치 수 2 - 파이썬 (0) | 2023.01.06 |
[백준] 1303. 전쟁-전투 - 파이썬 (0) | 2023.01.05 |
[백준] 1758. 알바생 강호 - 파이썬 (0) | 2023.01.04 |