https://www.acmicpc.net/problem/15988
코드 :
dp - topdown
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static final int MOD = 1_000_000_009;
static long[] dp;
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());
dp = new long[1_000_001];
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
while(T-- > 0){
int n = Integer.parseInt(br.readLine());
sb.append(recur(n)).append("\n");
}
System.out.println(sb);
}
public static long recur(int n){
if(dp[n] == 0){
dp[n] = recur(n - 1) + recur(n - 2) + recur(n - 3);
}
return dp[n] % MOD;
}
}
풀이 :
예전 123 시리즈와 비슷한 문제다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1309번 - 동물원 (Java) (0) | 2022.03.29 |
---|---|
백준 1149번 - RGB거리 (Java) (0) | 2022.03.29 |
백준 2225번 - 합분해 (Java) (0) | 2022.03.28 |
백준 1699번 - 제곱수의 합 (Java) (0) | 2022.03.28 |
백준 1912번 - 연속합 (Java 8) (0) | 2022.03.27 |
댓글