Hanbit the Developer

[Python] 백준 9461번: 파도반 수열 본문

Algorithm/백준

[Python] 백준 9461번: 파도반 수열

hanbikan 2021. 5. 17. 13:50

https://www.acmicpc.net/problem/9461

 

9461번: 파도반 수열

오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의

www.acmicpc.net

 

import sys
input = sys.stdin.readline

P = [0, 1, 1, 1, 2]

T = int(input())
for _ in range(T):
    N = int(input())

    for i in range(len(P), N+1):
        P.append(P[i-1] + P[i-5])

    print(P[N])

 

해당 수열을 분석해보면 P[n] = P[n-1] + P[n-5]라는 결론이 도출된다. 새로운 삼각형을 만들 때 몇 번째 삼각형과 인접하는지를 확인해주면 쉽게 알 수 있다.