Computer Science/알고리즘

[백준 Java] BOJ 11726 2xn 타일링 Java 문제 풀이

토마토. 2023. 3. 28. 21:36

11726번: 2×n 타일링 (acmicpc.net)

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

import java.io.*;
import java.util.*;

public class Main {
  static int[] dp;
  public static int answer(int n){
    dp = new int[n];
    for (int i=0;i<n;i++){
      if (i==0){
        dp[i] = 1;
      } else if (i==1){
        dp[i] = 2;
      } else {
        dp[i] = (dp[i-1]+dp[i-2]>10007)?(dp[i-1]+dp[i-2]%10007):dp[i-1]+dp[i-2];
      }
    }
    return dp[n-1]%10007;
  }
  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int n = Integer.parseInt(br.readLine());
    System.out.println(answer(n));
  }
}