https://www.acmicpc.net/problem/11727
๐ฅ ์์ด๋์ด
DP ๋ฌธ์ ์ ์ฝํ ์ ๋ N์ด 1์ผ ๋ ๋ถํฐ 6์ผ ๋ ๊น์ง ์์ ๊ทธ๋ ค๋ณด๋ฉฐ ๊ท์น์ ์ฐพ๊ณ ์ ๋ ธ๋ ฅํ์ต๋๋ค.
N์ด 5์ผ ๋ `2 + 3` ํ์ผ๋ก ๋๋์ด ์๊ฐํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ `์ค๊ฐ์ ๊ฒน์น๋ ๋ถ๋ถ`์ ๋ค์ด๊ฐ 2*1 ํ์ผ๊ณผ 2*2ํ์ผ์ ์๊ฐํ์ต๋๋ค.
๊ทธ๋ ๊ฒ ๋์จ ์ ํ์์ `D[i] = 3 * D[i - 2] + 2 * D[i - 3]` ์ ๋๋ค.
๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ๋ณด๋ 1 + 4 ํ์ผ๋ก ๋๋์ด ์๊ฐํ๋๋ฐ, ์ ํ์์ ๋ค๋ฅด๊ฒ ๋์ค๋๋ผ๋ ๊ฒฐ๊ตญ ๊ฐ์ ์ ๊ทผ๋ฒ์ ๋๋ค.
์ ์ถ ์ฝ๋
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] D = new int[1001];
D[1] = 1;
D[2] = 3;
D[3] = 5;
for (int i = 4; i <= n; i++) {
D[i] = (3 * D[i - 2] + 2 * D[i - 3]) % 10007;
}
System.out.println(D[n]);
}
}
ํจ์จ์ฑ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
LeetCode 39. Combination Sum - JAVA (0) | 2024.04.23 |
---|---|
[Python] ๋ฐฑ์ค 7662 : ์ด์ค ์ฐ์ ์์ ํ (0) | 2022.11.02 |
[Python] ๊ตฌ๋ฆLEVEL : ๊ฐ๋ฏธ์ ์ง๋ง๋ฌผ (0) | 2022.11.01 |
[Python] ๋ฐฑ์ค 3190 : ๋ฑ (implementation) (2) | 2022.10.07 |
[Python] ๋ฐฑ์ค 1865 : ์ํ (Bellman Ford) (0) | 2022.10.04 |