11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
문제
- 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램
입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
출력
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력.
풀이
처음부터 노가다로 구해보니까 점화식이 나왔다.
DP[N] = DP[N-1]+DP[N-2] 임을 확인할 수 있다..
public class bj11726 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
int n = s.nextInt(); // n 입력받음
int dp[] = new int[1001];
dp[0] = 0; // 초기화 안해주면 런타임 에러
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]);
}
}
'Algorithm & Data Structure > 백준' 카테고리의 다른 글
[JAVA] 백준 14501번 : 퇴사 (0) | 2020.05.16 |
---|---|
[JAVA] 백준 1932번 : 정수 삼각형 (0) | 2020.05.15 |
[JAVA] 백준 2293번 : 동전 1 (0) | 2020.05.08 |
[JAVA] 백준 9461번 : 파도반 수열 (0) | 2020.05.08 |
[JAVA] 백준 2225번 : 합분해 (2) | 2020.05.08 |