[백준] 9461번 : 파도반 수열 (파이썬)

뚝딱이 공학도·2022년 4월 26일
0

문제풀이_백준

목록 보기
124/160



문제



나의 답안

import sys
input = sys.stdin.readline

t=int(input())
arr=[]
for i in range(t):
    arr.append(int(input())) #입력 받기

p=[0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9]#p(1)~p(10) p(0)은 사용하지 않으므로 0으로 선언

for i in range(len(p),max(arr)+1):#11부터 입력 받은 숫자 중 가장 큰 숫자까지
    p.append(p[i-2]+p[i-3])

for i in arr:
    print(p[i])

접근 방법

  • 문제에 제시된 것에 따르면 수열 p(n)은 p(n)=p(n-3)+p(n-2)이 성립한다.
  • 따라서 해당 규칙을 기반으로 구현해주면 된다.
  • n은 1부터 시작하므로 인덱스 0은 사용하지 않는다.(임의의 값으로 설정)
  • 유사문제1, 유사문제2

0개의 댓글