백준/동적 계획법
[백준] 9461 - 파도반수열 [JAVA]
odong2
2024. 4. 29. 17:15

코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
static long[] dp = new long[101];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < T; i++) {
int N = Integer.parseInt(br.readLine());
sb.append(solution(N) + "\n");
}
System.out.println(sb);
}
// Top-down
static long solution(int n) {
dp[1] = 1;
dp[2] = 1;
dp[3] = 1;
// 피보나치 수열 형태를 따름
for (int i = 4; i <= n; i++) {
if (dp[i] == 0) dp[i] = dp[i - 3] + dp[i - 2];
}
return dp[n];
}
}