알고리즘/Python
[백준/Python] 9461 파도반 수열
_SIHA_
2022. 1. 22. 02:50
📖 문제 링크
https://www.acmicpc.net/problem/9461
9461번: 파도반 수열
오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의
www.acmicpc.net
👩💻 문제풀이
생각보다 규칙이 쉽게 찾아진 문제였다!
P(1)부터 P(10)까지 수열을 표로 나열해보니, P(6)부터 규칙적으로 수가 증가하는 것을 확인할 수 있었다.

P(6)의 경우, P(1)과 P(5)의 합이며, P(7)의 경우 P(2)와 P(6)의 합인 것을 확인할 수 있다.
즉, 이를 토대로 점화식을 세우면 아래와 같다.
dp[i] = dp[i-5] + dp[i-1]
dp[1]부터 dp[5]까지는 하드코딩으로 처리해주었다.
✅ 최종 코드
n = int(input())
for _ in range(n):
k = int(input())
dp = [0] * 101
dp[1] = 1
dp[2] = 1
dp[3] = 1
dp[4] = 2
dp[5] = 2
for j in range(6, k+1):
dp[j] = dp[j-5] + dp[j-1]
print(dp[k])