[ 다먹살 ]/- Coding

[백준] 11726 2xn 타일링

엉망으로살기 2023. 2. 22. 16:05
반응형

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

반응형