Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Archives
Today
Total
관리 메뉴

행복한 개구리

백준 22.02.07. 9461번 - 파도반 수열 본문

Algorithm/BaekJoon

백준 22.02.07. 9461번 - 파도반 수열

HappyFrog 2022. 2. 7. 01:22

T = int(input())

dp = [0 for i in range(100)]
for i in range(5):
    if i < 3:
        dp[i] = 1
    else:
        dp[i] = 2

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

    for i in range(5, N):
        dp[i] = dp[i-5] + dp[i-1]

    print(dp[N-1])
  • 수열의 규칙을 찾아봅시다.
  • P(N)에서 N이 5일때까지는 별 규칙이 없지만 N이 5이상이라면 P(N) = P(N-1) + P(N-5)의 규칙을 가집니다.
  • dp리스트를 입력받을 수 있는 범위에 맞게 생성해줍니다.
    • 값은 0으로 설정합니다. 지정한 인덱스의 값이 0이라면 아직 P(N)이 구해지지 않은 상태인 것입니다.
  • P(N)에서 N이 1~5일 때는 규칙없이 지정해주어야 하는 상태이므로 dp의 0~4인덱스의 값을 조건에 맞게 미리 할당해줍니다.
  • 입력받은 N이 5보다 크거나 같다면 알아낸 규칙을 토대로 갱신시켜줍니다.
  • 한 사이클마다 이것을 출력해주면 됩니다.