BAEKJOON 9461
문제

입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100)
나의 처음 코드
문제의 예시로 나와있는 값들을 보면, 이 문제는 피보나치 수열과 비슷하게 이루어져 있는것을 알 수 있다. 다만 전 값과 전전 값이 아닌, (전 값 + 5번째 전 값)으로 이루어져 있다. 마찬가지로 피보나치 수열처럼 비슷하게 코딩을 해주면 된다. 그 코드는 아래와 같다.
N = int(input())
fibo_list = [1, 1, 1, 2, 2, 3, 4, 5, 7, 9]
ans = []
#fivo_list에 memorizing 해가는 과정
def return_val(nth : int):
for i in range(len(fibo_list), nth):
fibo_list.append(fibo_list[i-1] + fibo_list[i-5])
for i in range(N):
num = int(input())
#받은 인풋의 값이 이미 fibo_list에 memorized 되어있을 때
if num <= len(fibo_list):
ans.append(fibo_list[num-1])
#받은 인풋의 값이 fibo_list에 memorized 되어있지 않을 때
else:
return_val(num)
ans.append(fibo_list[num-1])
for i in ans:
print(i)
결과는 맞았습니다. 문제에서 답을 준 격이기 때문에, 딱히 어려운 문제가 아니다. 어떻게 memorizing을 할지가 점차 중요해지는 단계이다.