https://www.acmicpc.net/problem/11726
https://www.acmicpc.net/problem/11727
์ธํธ์ฒ๋ผ ์๊ธด ๋ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค.
์ฌ์ด DP ๋ฌธ์ ๋ผ๊ณ ํด์ ๋ค๋ณ๋๋ฐ ์๊ฐ๋ณด๋ค ๋นจ๋ฆฌ ๋ชปํ์๋ค.
๋๋ฌธ์ ๋ค ๋ด๊ฐ ๋ช๋ ์ ์ ๋ค๋ฅธ ์ธ์ด๋ก ํ์๋๊ธฐ ๊ธฐ๋ก์ด ์๋๋ฐ
๊ทธ๋ ์ด๋ป๊ฒ ํ์๋ ๋ชจ๋ฅด๊ฒ ๋ค ใ ใ
์ฐ์ ๋ ๋ฌธ์ ๋ชจ๋, ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ์ ๋ชปํ๊ณ ๊ณ ๋ฏผํ๋ ์๊ฐ์ด ์๊น์ธ ์ ๋๋ก ์์ฃผ ๊ฐ๋จํ๋ค.
n=1์ผ ๋๋ถํฐ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๋ฐ์ ธ๋ณด๊ณ ์ ํ์์ ์ธ์ฐ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
2xn ํ์ผ๋ง์ ๊ฒฝ์ฐ,
๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ ธ๋ณด๋ฉด ์ด๋ ๋ค.
n=1 : 1๊ฐ์ง
n=2 : 2๊ฐ์ง
n=3 : 3๊ฐ์ง (= 1 + 2)
n=4 : 5๊ฐ์ง (= 2 + 3)
n=5 : 8๊ฐ์ง (= 3 + 5)
...
ํผ๋ณด๋์น์ ๋์ผํ ๊ท์น์ด๋ค.
์ฆ 2xn ํ์ผ๋ง ๋ฌธ์ ๋ ํผ๋ณด๋์น ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๊ฐ์ ๋ฌธ์ ์ด๋ค.
์ ์ถ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
int[] dp = new int[n+1];
dp[0] = 1;
dp[1] = 1;
for(int i = 2; i <= n; i++) {
dp[i] = (dp[i-1] + dp[i-2]) % 10007;
}
System.out.println(dp[n]);
}
}
2xn ํ์ผ๋ง 2์ ๊ฒฝ์ฐ,
๋๊ฐ์ด ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ ธ๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
n=1 : 1๊ฐ์ง
n=2 : 3๊ฐ์ง
n=3 : 5๊ฐ์ง (= 1*2 + 3)
n=4 : 11๊ฐ์ง (= 3*2 + 5)
n=5 : 21๊ฐ์ง (= 5*2 + 11)
n=6 : 43๊ฐ์ง (= 11*2 + 21)
...
์ ๋ณด๋ฉด ๊ท์น์ด ๋ณด์ธ๋ค.
์ฒ์์๋ n=4์ผ ๋์ n=5์ผ ๋์ ๊ฒฝ์ฐ์ ์๋ฅผ ์๋ชป ๊ตฌํด์ ๊ท์น์ ๊ณ์ ๋ชป์ฐพ์์๋ค.
ํญ์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ํํ ๋ฐ์ง๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
์ ์ถ ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
int[] dp = new int[n+1];
dp[0] = 1;
dp[1] = 1;
for(int i = 2; i <= n; i++) {
dp[i] = (dp[i-1] + dp[i-2] * 2) % 10007;
}
System.out.println(dp[n]);
}
}
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > DP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]10211๋ฒ: Maximum Subarray (0) | 2023.10.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค]ํธํ ๋์ค (0) | 2023.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค]๋ ๋ฐ๋จน๊ธฐ (0) | 2023.06.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2023.05.31 |
[๋ฐฑ์ค]1149๋ฒ: RGB๊ฑฐ๋ฆฌ (0) | 2023.05.27 |