728x90
반응형
https://www.acmicpc.net/problem/11727
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static int n;
public static int[] dp;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
dp = new int[1001];
dp[1] = 1;
dp[2] = 3;
for (int i = 3; i <= n; i++) {
dp[i] = (2 * (dp[i - 2]) + dp[i - 1]) % 10007;
}
System.out.println(dp[n]);
}
}
|
cs |
계속 ArrayIndexOutOfBounds 런타임에러가 떠서 처음부터 배열크기를 1001로 맞춰놓고 시작했다.
bottom - up 방식으로 풀어봤고, 11726번 문제랑 달리 2x2타일이 있기 때문에 이걸 염두에 두고
f[n]=2*(f[n-2])+f[n-1] (단 n>=3) 점화식을 짜면된다.
문제를 풀면서 틀렸던 부분
문제를 풀면서 2번의 틀렸습니다를 보았는데, 그 이유는 f[1]=2로 생각해서였다.
위의 그림처럼 2x1과 1x2는 같은건데 다른거라 생각하고 풀어서 틀렸다.
728x90
반응형
'알고리즘 > DP' 카테고리의 다른 글
[java 백준] 실버 1/ 10844번 쉬운 계단 수 (0) | 2021.08.01 |
---|---|
[java 백준] 실버3/2193번 이친수 (0) | 2021.08.01 |
[java 백준] 실버 3/ 11726번 2 x n 타일링 (0) | 2021.07.28 |
[java 백준] 실버 3/ 9095번 1,2,3 더하기 (0) | 2021.07.28 |
[DP 개념] #2_동적계획법(1) (0) | 2021.07.28 |
댓글