📍 문제 설명
💡 접근
바닥공사 문제와 같은 문제
👩💻 코드
import java.util.*;
public class Main {
static int n, m, answer;
static int[][] board;
static int[] dp;
static boolean[][] visited;
static int[] dx = {-1,1,0,0};
static int[] dy = {0,0,-1,1};
static ArrayList<String> list = new ArrayList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
Main T = new Main();
n = kb.nextInt();
dp = new int[n+2];
//dp[n]은 2Xn의 타일을 채우는 방법의 수
T.solution();
System.out.println(dp[n]);
}
private void solution() {
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n; i++) {
dp[i] = (dp[i-1] + dp[i-2]) % 10007;
}
}
}
import java.util.*;
public class Main {
static int n, m, answer;
static int[][] board;
static int[] dp;
static boolean[][] visited;
static int[] dx = {-1,1,0,0};
static int[] dy = {0,0,-1,1};
static ArrayList<String> list = new ArrayList<>();
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
Main T = new Main();
n = kb.nextInt();
dp = new int[n+2];
//dp[n]은 2Xn의 타일을 채우는 방법의 수
T.solution();
System.out.println(dp[n]);
}
private void solution() {
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= n; i++) {
dp[i] = (dp[i-1] + 2 * dp[i-2]) % 10007;
}
}
}