코딩테스트/자바 문제풀이

[CLASS 3: DP] 백준 9461 파도반 수열

승요나라 2024. 10. 28. 17:01

9461번: 파도반 수열

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

 

# 코드

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        int t = Integer.parseInt(br.readLine());
        long[] p = new long[101];
        p[1] = 1;
        p[2] = 1;
        p[3] = 1;
        p[4] = 2;
        p[5] = 2;
        p[6] = 3;
        p[7] = 4;
        p[8] = 5;
        p[9] = 7;
        p[10] = 9;
        for (int i = 11; i <= 100; i++) {
            p[i] = p[i-1] + p[i-5];
        }

        for (int j = 0; j < t; j++) {
            int n = Integer.parseInt(br.readLine());
            sb.append(p[n]).append("\n");
        }
        br.close();
        System.out.print(sb);
    }
}
  • 피보나치와 비슷해 코푸듯이 푼 문제였다. \(@^0^@)/
  • 주의할 것은 모든 합 연산이 그러하듯 p 배열을 int가 아닌 long 타입으로 생성해야 한다는 점이다.
  • 더하기 연산이 나온다면 일단 long을 박고 시작하는 것이 좋겠다.