백준 9461 파도반 수열
https://www.acmicpc.net/problem/9461
앞 dp 문제들을 풀어보니 이건 엄청 쉽게 느껴진다.
이건 그냥 N이 5이상이 되면 [N-1] + [N-5] 한게 값이 된다.
T = int(input())
dp = [0] * 101
dp[0] = 1
dp[1] = 1
dp[2] = 1
dp[3] = 2
dp[4] = 2
dp[5] = 3
dp[6] = 4
dp[7] = 5
dp[8] = 7
dp[9] = 9
for _ in range(T):
N = int(input())
if N < 11:
print(dp[N-1])
else:
for i in range(10, N):
dp[i] = dp[i-1] + dp[i-5]
print(dp[N-1])
처음에는 append로 했었는데 자꾸 이상하게 결과가 나와서 왜그런가 고민을 해봤다. 그 결과 append로 하면 리스트가 영구히 바뀌게 되고, 수가 중복append되는 현상이 일어난다는걸 알았다.
dp는 값을 중복해서 계산하지 않으려는 것이기 때문에 append를 쓰면 안되고 이렇게 해야 한다는것을 깨달았다.
Author And Source
이 문제에 관하여(백준 9461 파도반 수열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chss3339/백준-9461-파도반-수열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)