728x90
728x90
2×n 타일링 2 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 256 MB | 23330 | 13937 | 11148 | 59.727% |
문제
2×n 직사각형을 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×17 직사각형을 채운 한가지 예이다.
입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
출력
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
#include<stdio.h>
int main(void)
{
int input = 0;
scanf("%d",&input);
int DP[1001] = {0,};
DP[0] = 1;
DP[1] = 1;
for(int i=2;i<=input;i++)
{
DP[i] =( DP[i-2] * 2 + DP[i-1])%10007 ;
}
printf("%d",DP[input]%10007);
}
DP 문제를 계속해서 풀어보니 점점 어떻게 풀어야하는지 감이 잡히네요.. 규칙을 찾고 배열의 점화식을 생각하고 마지막 시간초과를 예방하기 위해 배열을 사용하고 문제에서 요구하는 수로 나누어서 출력해주기..등등 얼른 DP문제를 마스터하고 다음 알고리즘으로 넘어가야겠어요!!
728x90
728x90
'Language > C' 카테고리의 다른 글
(C언어) 백준 11057번 : 오르막 수 - 컴도리돌이 (0) | 2020.03.27 |
---|---|
(C언어) 백준 10844번 : 쉬운 계단수 - 컴도리돌이 (0) | 2020.03.25 |
(C언어) 백준 9095번 : 1,2,3 더하기 - 컴도리돌이 (0) | 2020.03.23 |
(C언어) 백준 11726번 : 2×n 타일링 - 컴도리돌이 (0) | 2020.03.18 |
(c언어) 백준 1463번 : 1로 만들기 - 컴도리돌이 (0) | 2020.03.16 |