Algorithm/baekjoon

2×n 타일링

마닐라 2022. 2. 8. 16:54

📍 문제 설명

💡 접근

바닥공사 문제와 같은 문제

 

👩‍💻 코드

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;
        }
    }

}

'Algorithm > baekjoon' 카테고리의 다른 글

카드 구매하기  (0) 2022.02.09
1,2,3 더하기 5  (0) 2022.02.09
종이 조각  (0) 2022.02.08
부분수열의 합  (0) 2022.02.08
로또  (0) 2022.02.06