백준 9461

旅人·2023년 2월 27일
0

문제


Code

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class P9461 {
	// 수열 --> dp[N] == p(N)
	private static Long[] dp = new Long[101];
	
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
        // initial values
		dp[0] = 0L;
		dp[1] = 1L;
		dp[2] = 1L;
		dp[3] = 1L;
		
        // 테스트 케이스 개수
		int T = Integer.parseInt(br.readLine());
		
        // 테스트 케이스
		while(T-- > 0) {
			sb.append(padovan(Integer.parseInt(br.readLine())))
			.append('\n');
		}
        
		System.out.println(sb.toString());
	}
    
    
    /*
    	수열 N번째 항 P(N) 구하기 (재귀, DP)
    */
	private static Long padovan(int N) {
		if(dp[N] == null) {
			dp[N] = padovan(N - 2) + padovan(N - 3);
		}
		return dp[N];
	}
}

참고 : https://st-lab.tistory.com/127

profile
一期一会

0개의 댓글