https://www.acmicpc.net/problem/11727
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] dp = new int[1001];
dp[1] = 1;
dp[2] = 3;
for(int i=3; i<=n; i++){
dp[i] = dp[i-1]+dp[i-2]*2;
dp[i]%=10007;
}
System.out.println(dp[n]);
}
}
11726 과 비슷한 문제지만 2x2타일로도 채울수 있다는 조건이 추가되었다.
dp[n-2] 사각형에서 가로 직사각형 2개를 붙이는 것만큼 2x2 사각형 하나를 붙일 수 있으므로,
점화식은 dp[i] = dp[i-1] + 2 * dp[i-2]가 된다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 백준 1912번 - 연속합 (0) | 2022.10.27 |
---|---|
[JAVA] 백준 15990번 - 1, 2, 3 더하기 5 (0) | 2022.10.27 |
[JAVA] 백준 11726번- 2xn 타일링 (0) | 2022.10.26 |
[JAVA] 백준 11053번- 가장 긴 증가하는 부분 수열 (0) | 2022.10.25 |
[JAVA] 백준 1463번- 1로 만들기 (0) | 2022.10.25 |