티스토리 뷰
https://www.acmicpc.net/problem/2133
2133번: 타일 채우기
문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 복사 2 예제 출력 1 복사 3 힌트 아래 그림은 3×12 벽을 타일로 채운 예시이다....
www.acmicpc.net
힌트
...더보기
이번 타일 채우기 문제를 풀면서 느꼈던 것은 역시 알고리즘 문제는 규칙 찾기 문제이다 라는 것이다. 이 문제는 2XN 타일 채우기 문제와 매우 흡사하긴 하지만, 3XN 문제이다. 3XN타일을 채우는데 사용하는 타일은 1X2, 2X1이다. 그래서 N에 짝수가 들어가지 않으면 3XN타일을 채울 수 없다. 이 점에 착안을 두어서 규칙을 찾다 보면 빠르게 찾을 수 있다.
코드
...더보기
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long[] dp = new long[N + 1];
dp[0] = 1; //dp[2]=3을 만들기 위해서 ...
for (int i = 2; i <= N; i += 2) {
dp[i] = 3 * dp[i - 2];
for (int j = i - 4; j >= 0; j -= 2) {
dp[i] += dp[j] * 2;
}
}
System.out.println(dp[N]);
}
}
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
DP [백준 2225 합분해] -java- (0) | 2019.04.26 |
---|---|
DP [백준 9461 파도반 수열] -java- (0) | 2019.04.26 |
DP [백준 1699 제곱수의 합] -java- (0) | 2019.04.25 |
DP [백준 2579번 계단 오르기] -java- (0) | 2019.04.25 |
DP [백준 1912번 연속합] -java- (0) | 2019.04.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- C언어 한글 깨짐
- CLion 한글
- printf문 연산자
- printf 스택
- 복붙하기
- C언어 한글
- 모바일 앱 설계
- C언어 printf문
- MinGW 한글 깨짐
- C언어 배열 선언
- 백준
- c언어 공백 출력
- CLion 한글 깨짐
- 배열 메모리
- 연산 순서
- manifest 의미
- 계산 순서
- res 의미
- 증감연산자 계산 순서
- 앱 프로그래밍
- 필드 폭 지정
- 배열 주의사항
- MinGW 한글
- 안스 프로젝트 구조
- c언어 필드 폭지정
- 윈도우 복붙
- 배열 메모리 할당
- 다이나믹 프로그래밍
- python list 팁
- printf 계산 순서
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
27 | 28 | 29 | 30 | 31 |
글 보관함