프로그래밍 공방

[백준] 11726번 : 2xn 타일링 본문

개발/문제해결

[백준] 11726번 : 2xn 타일링

hyosupsong 2020. 11. 13. 14:17

문제

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.


입력

첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)


출력

첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.


문제해결방법

1x2 타일을 두 개 붙여서 두 칸을 채우는 타일을 만든다.

이렇게 하면 1칸 짜리 타일 1개, 2칸 짜리 타일 1개로 생각할 수 있다.

n번째 타일을 채우는 경우의 수를 생각하면 n-1 번째 타일에서 1칸 짜리 타일을 붙이는 방법과

n-2 번째 타일에서 2칸 짜리 타일을 붙이는 방법이 있다.

이것을 수식으로 나타내면 다음과 같다.

타일[n] = 타일[n-1] + 타일[n-2]


코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package baekjoon;
 
import java.io.BufferedReader;
import java.io.InputStreamReader;
 
public class Main11726_2Xn타일링 {
 
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int[] arr = new int[n+1];
        arr[0= 1;
        arr[1= 1;
        for(int i=2; i<=n; i++) arr[i] = (arr[i-1+ arr[i-2])%10007;
        System.out.println(arr[n]);
    }
}
cs

코드에 대한 피드백이나 더 좋은 아이디어는 언제나 환영입니다.

'개발 > 문제해결' 카테고리의 다른 글

[프로그래머스] 기능개발  (0) 2020.11.14
[프로그래머스] 스킬트리  (0) 2020.11.13
[백준] 3019번 : 테트리스  (0) 2020.11.12
[백준] 2644번 : 촌수계산  (0) 2020.11.12
[백준] 11725번 : 트리의 부모 찾기  (0) 2020.11.12