
-Code
import java.util.Scanner;
public class BOJ11726 {
static int[] dp;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// dp 테이블 초기화
dp = new int[n + 1];
for (int i = 1; i <= n; i++) {
dp[i] = -1;
}
dp[0] = 1;
dp[1] = 1;
// 타일링 dp 로직 시작
tiling(n);
System.out.println(dp[n]);
}
private static int tiling(int n) {
if (dp[n] != -1) return dp[n];
return dp[n] = (tiling(n - 1) + tiling(n - 2)) % 10007;
}
}
top-down 방식으로 풀어봤습니다.
'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 34917번 M (0) | 2025.12.17 |
|---|---|
| [백준/Java] 10384번 팬그램 (0) | 2025.12.16 |
| [백준/Java] 11050번 이항 계수 1 (0) | 2025.12.15 |
| [백준/Java] 4575번 Refrigerator Magnets (0) | 2025.12.15 |
| [백준/Java] 3602번 iChess (0) | 2025.12.14 |