728x90
반응형
https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
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[n + 2];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i <= n; i++) {
dp[i] = (dp[i - 2] + dp[i - 1]) % 10007;
}
System.out.println(dp[n]);
}
}
|
cs |
나는 bottom-up 방식으로 풀어봤다.
DP를 하면서 느끼는건 같은것이 있는 순열 문제와 비슷하다는 것인데, 이 문제가 딱 같은것이 있는 순열이였다!
f[1]=1
f[2]=2
그렇다면 f[3]은
3이된다.
이런식으로 같은 것이 있는 순열을 찾아내서 점화식을 찾아내면
f[n]=f[n-1]+f[n-2](단,n>=3) 을 찾아낼 수 있다.
728x90
반응형
'알고리즘 > DP' 카테고리의 다른 글
[java 백준] 실버3/2193번 이친수 (0) | 2021.08.01 |
---|---|
[java 백준] 실버 3/ 11727번 2xn타일링 2 (0) | 2021.07.30 |
[java 백준] 실버 3/ 9095번 1,2,3 더하기 (0) | 2021.07.28 |
[DP 개념] #2_동적계획법(1) (0) | 2021.07.28 |
[java 백준] 실버 3/ 1463번, 1로 만들기 (0) | 2021.07.27 |
댓글