[백준] 9461 파도반 수열

hyunhee·2021년 5월 22일
0

algorithm

목록 보기
1/24

파도반 수열

9461번: 파도반 수열

이 문제를 풀면서 규칙성을 찾았는데 처음으로 찾은 규칙성은 수열이 리스트 a일 때

a[i] = a[i-1] + a[i-5]  # (i >= 5) 

인 것과

a[i] = a[i-3] + a[i-2]  # (i >= 3)

인 것을 찾았다.
첫 번째 식은 리스트에 값을 5개를 넣어야 하고 두 번째 식은 값을 3개를 넣어야 한다. 그래서 두 번째 식을 이용해서 풀었다.

1, 1, 1, 2, 2, 3, 4, 5, 7, 9 순으로 증가하고 리스트의 인덱스가 0부터 시작하므로 0번째 수를 0으로 한다.

리스트에 미리 0번째 수부터 2번째 수까지 넣어준다.

num_list = [0, 1, 1]

입력값 n이 1부터 100까지이므로 반복문을 3부터 100까지 반복한다. num_list에 값을 넣어준다.

테스트 케이스의 개수만큼 n의 값에 따른 num_list[n] 을 반복하여 출력한다.

t = int(input())

num_list = [0, 1, 1]

for i in range(3, 101):
    num_list.append(num_list[i-3] + num_list[i-2])

for i in range(t):
    n = int(input())
    print(num_list[n])

0개의 댓글