11월 13일(월) - 다이나믹 프로그래밍 (2133번)
2133번: 타일 채우기
3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자.
www.acmicpc.net
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
문제점
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
풀이
(C언어 풀이 활용)
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[N+1];
if(N%2 == 1)
{
System.out.println(0);
return;
}
dp[0] = 1;
dp[1] = 0;
dp[2] = 3;
for(int i=4; i<=N; i++)
{
dp[i] = dp[i-2] * dp[2];
for(int j=i-4; j>=0; j=j-2)
{
dp[i] = dp[i] + (dp[j] * 2);
}
}
System.out.println(dp[N]);
}
}
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
'백준(Java) > 23년 11월' 카테고리의 다른 글
[Java] 백준 - 1700번: 멀티탭 스케줄링 (0) | 2023.11.15 |
---|---|
[Java] 백준 - 1976번: 여행 가자 (0) | 2023.11.14 |
[Java] 백준 - 2206번: 벽 부수고 이동하기 (0) | 2023.11.10 |
[Java] 백준 - 1182번: 부분수열의 합 (0) | 2023.11.09 |
[Java] 백준 - 2437번: 저울 (0) | 2023.11.08 |
댓글