[알고리즘] 파도반 수열 9461번

Halo·2025년 5월 4일

Algorithm

목록 보기
35/85
post-thumbnail

🔍 Problem

파도반 수열 9461번


📃 Input&Output


📒 해결 과정

  1. 직접 수열을 나열하며 점화식을 구한다.
  2. 필자가 구한 점화식

dp[i]=dp[i1+dp[i5]dp[i]=dp[i-1+dp[i-5]

  1. 코드에 적용

❗Trouble Shooting

  1. dp 배열 값의 범위 int 초과 문제
    int 가 나타낼 수 있는 +2,147,483,647 범위를 넘어서 -값이 나와서 계속 틀렸다.

    dp 배열 자료형을 int에서 Long으로 Type Casting함.


💻 Code

import java.util.Scanner;

//public class Main {
public class P9461 {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        int T = sc.nextInt();
        int N=0;

        // 이슈트래킹 범위문제.
        long[] dp = new long[101];
        dp[1]=1;
        dp[2]=1;
        dp[3]=1;
        dp[4]=2;
        dp[5]=2;

        for (int i=6; i<=100; i++){
            dp[i]=dp[i-1]+dp[i-5];
        }

        for (int i=0; i<T; i++) {
            N=sc.nextInt();
            System.out.println(dp[N]);
        }



    }
}

🎸 기타

  1. 자바에서 클래스 멤버에 static을 사용하면 모든 멤버의 인스턴스가 하나의 메모리(static으로 할당된 멤버의 메모리)만을 참조한다.

🤔 느낀점

dp 맨 마지막 인덱스의 값을 찍어서 한번 체크하고 값이 int범위를 초과하면 type casing을 하자.

profile
새끼 고양이 키우고 싶다

0개의 댓글