백준 Java 9461_파도반 수열

InSeok·2023년 3월 8일
0

  • 피보나치와는 조금 다른 점이라면 두 인접 값의 합이 다음 인덱스에 위치하는 것이 아닌 다다음의 인덱스에 위치한다는 것.
  • 수식으로 보자면 Func(N) = Func(N-2) + Func(N-3)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
	
	public static Long[] seq = new Long[101];
 
	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		seq[0] = 0L;
		seq[1] = 1L;
		seq[2] = 1L;
		seq[3] = 1L;
		
		int T = Integer.parseInt(br.readLine());
		
		while(T-->0) {
			sb.append(padovan(Integer.parseInt(br.readLine()))).append('\n');
		}
		System.out.println(sb);
	}
	
	public static long padovan(int N) {
		if(seq[N] == null) {
			seq[N] = padovan(N - 2) + padovan(N - 3);
		}
		return seq[N];
	}
 
}
profile
백엔드 개발자

0개의 댓글