BOJ_G5_2133
๐ [G5_2133] ํ์ผ ์ฑ์ฐ๊ธฐ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int[] dp;
static int N;
static int res;
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[0] = 1;
dp[2] = 3;
if(N>=4) {
for(int i=4; i<=N; i++) {
dp[i] += dp[i-2]*dp[2];
for(int j = 4; j <= i; j += 2) {
dp[i] += dp[i-j]*2;
}
}
}
System.out.println(dp[N]);
}
}
๐ค ๋์ ์๊ฐ
dp ๋ฌธ์ ์ด๋ค.
ํ์ผ์ ๋ชจ๋ ์นธ์ ์ฑ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋๋ฐ ํ์ ์ธ ๊ฒฝ์ฐ๋ ์ ์ธํ๋ค. ๊ฐ๋์ฐจ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๋ฉด ๋จผ์ 3*2์ผ ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๊ฐ ๋ํ๋๋ค.
์ด ๊ตฌ์กฐ 3๊ฐ๊ฐ ๋ฐ๋ณต๋๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๊ทธ๋ฆฌ๊ณ 3*4 ์ผ ๋ ๊ตฌ์กฐ์ด๋ค.
์ด ๊ฒ์ ๋ณด๋ฉด ์์ 3๊ฐ์ง ๊ตฌ์กฐ๊ฐ ๋ฐ๋ณต๋์ด ๋์ค๋๊ฑฐ์ ์๋ก์ด ๋ชจ์ 2๊ฐ๊ฐ ์ถ๊ฐ ๋๋ค.
3*6 ๊น์ง ๋ณด์์ ๋ ๊ตฌ์กฐ๋ฅผ ํ์
ํด๋ณด๋ฉด
dp[n-2] * 3 + dp[n-4] * 2 + dp[n-6] ๊ฒฝ์ฐ์์ * 2 + โฆ + dp[0] * 2 ์ด๋ผ๋ ์์ด ๋์จ๋ค.
์ด๊ฒ์ ์์ผ๋ก ํํํ๋ฉด ์์ ํฌ๋ฌธ์ด ๋๋ค.
์ ์ดํด๊ฐ ์๋๋ค๋ฉด ์ฐธ๊ณ ํ๋๋กโฆ
https://kosaf04pyh.tistory.com/236