728x90
https://www.acmicpc.net/problem/1720
1720번: 타일 코드
2×N 크기의 넓은 판을 1×2 (또는 2×1) 크기와 2×2 크기의 타일로 채우려고 한다. 여러 가지 경우가 있을 수 있으므로, 각각을 하나의 코드로 대응시켜서 암호화에 이용하려고 한다. 그런데 문제가
www.acmicpc.net
728x90
메모리: 14,200 KB , 시간: 128 ms
사용 알고리즘: 다이나믹 프로그래밍
참고
https://lotuslee.tistory.com/129
[백준 1720번] 타일 코드 (java)
1720번: 타일 코드 2×N 크기의 넓은 판을 1×2 (또는 2×1) 크기와 2×2 크기의 타일로 채우려고 한다. 여러 가지 경우가 있을 수 있으므로, 각각을 하나의 코드로 대응시켜서 암호화에 이용하려고 한
lotuslee.tistory.com
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// N := 타일 코드의 개수
int N = Integer.parseInt(br.readLine());
// 전체 타일 코드 저장할 배열
int[] dp1 = new int[31];
// 좌우 대칭 타일 코드를 저장할 배열
int[] dp2 = new int[31];
dp1[1] = 1; dp1[2] = 3; dp1[3] = 5;
dp2[0] = 1; dp2[1] = 1; dp2[2] = 3; dp2[3] = 1;
for (int i = 4; i <= N; i++) {
dp1[i] = dp1[i - 1] + (dp1[i - 2] * 2);
dp2[i] = dp2[i - 2] + (dp2[i - 4] * 2);
}
int result = (dp1[N] - dp2[N]) / 2 + dp2[N];
System.out.println(result);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 2281] 데스노트 (java) (0) | 2023.11.21 |
---|---|
[백준, BOJ 19942] 다이어트 (java) (1) | 2023.11.21 |
[백준, BOJ 27653] 최소 트리 분할 (java) (1) | 2023.11.09 |
[백준, BOJ 2487] 섞기 수열 (java) (0) | 2023.11.08 |
[백준, BOJ 14499] 주사위 굴리기 (java) (0) | 2023.11.06 |