STUDYING/Algorithm

[BOJ] 11726 11727 : 2xn 타일링/ 2xn 타일링 2

EOZIN 2018. 11. 20. 16:59
728x90

문제


[BOJ] 11726 : 2xn 타일링

[BOJ] 11727 : 2xn 타일링 2



해결


피보나치와 거의 비슷하다..

memeozation~~

10007나눈 나머지 조건을 나중에 발견해서 한 번 틀렸당 ㅜ.ㅜ



2xn 타일링 코드


#include <stdio.h>
int memo[1000];
int main(){
int n;
memo[0] = 1;
memo[1] = 1;

scanf("%d", &n);
if ( n == 0 || n == 1)
printf("1");
else{
for (int i = 2; i <= n; ++i) {
memo[i] = (memo[i-1] + memo[i-2])%10007;

if (i == n)
printf("%d", memo[i]);
}
}
return 0;
}


2xn 타일링 2 코드


규칙

- dp[n] = dp[n-1] + dp[n-2] + dp[n-2]


#include <stdio.h>
int memo[1000];
int main(){
int n;
memo[0] = 1;
memo[1] = 1;
memo[2] = 3;

scanf("%d", &n);
if ( n == 0 || n == 1)
printf("1");
else if ( n==2)
printf("3");
else {
for (int i = 3; i <= n; ++i) {
memo[i] = (memo[i-1] + 2*memo[i-2])%10007;

if (i == n)
printf("%d", memo[i]);
}
}
return 0;
}