[백준] 11726 2xn 타일링
https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
사실 이름이 생소해서 그렇지 결국에는 피보나치 수열 문제이다. 2xn을 메꾸는 방법은 2x(n-2)를 메꾸는 방법에 2x(n-1)를 메꾸는 방법의 가지 수를 더하면 되기 때문이다. 아마 정답률이 낮은 이유는 모듈러 연산자의 처리 부분 때문이지 않을까 싶다.
문제 및 입출력
코드
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n<=2)
{
System.out.println(n);
return;
}
int[] dp = new int[n+1];
dp[1] = 1;
dp[2] = 2;
for(int i=3; i<=n; i++)
{
dp[i] = (dp[i-1]+dp[i-2])%10007;
}
System.out.println(dp[n]%10007);
sc.close();
}
}