โ๋ฌธ์
https://www.acmicpc.net/problem/9461
์ฑ๋ฅ ์์ฝ
๋ฉ๋ชจ๋ฆฌ: 14232 KB, ์๊ฐ: 100 ms
๋ถ๋ฅ
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ, ์ํ
๋ฌธ์ ์ค๋ช
์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๊ฐํ์ด ๋์ ๋ชจ์์ผ๋ก ๋์ฌ์ ธ ์๋ค. ์ฒซ ์ผ๊ฐํ์ ์ ์ผ๊ฐํ์ผ๋ก ๋ณ์ ๊ธธ์ด๋ 1์ด๋ค. ๊ทธ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐํ๋ค. ๋์ ์์ ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด๋ฅผ k๋ผ ํ์ ๋, ๊ทธ ๋ณ์ ๊ธธ์ด๊ฐ k์ธ ์ ์ผ๊ฐํ์ ์ถ๊ฐํ๋ค.
ํ๋๋ฐ ์์ด P(N)์ ๋์ ์ ์๋ ์ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด์ด๋ค. P(1)๋ถํฐ P(10)๊น์ง ์ฒซ 10๊ฐ ์ซ์๋ 1, 1, 1, 2, 2, 3, 4, 5, 7, 9์ด๋ค.
N์ด ์ฃผ์ด์ก์ ๋, P(N)์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
โ๐ปํ์ด
์ฒซ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด๊ฐ 1์ธ ์ ์ผ๊ฐํ. ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐ.
3๋ฒ์งธ ์ ์ผ๊ฐํ ์ถ๊ฐ ํ ๊ฐ์ฅ ๊ธด ๋์ ์ ๊ธธ์ด๋ 2์ด๋ฏ๋ก ๋ณ์ ๊ธธ์ด๊ฐ 2์ธ ์ ์ผ๊ฐํ์ ์ถ๊ฐ.
๋์ ์ ๊ธธ์ด๊ฐ ๊ฐ์ฅ ๊ธด ๋ณ์ ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐ.
5๋ฒ์งธ ์ ์ผ๊ฐํ๋ถํฐ dp[i] = dp[i - 1] + dp[i - 5] ๋ผ๋ ๊ท์น์ ์ฐพ์ ์ ์์.
์ ์์ ๊ธธ์ด๋ฅผ ๊ณ ๋ คํ์ฌ dp๋ int๊ฐ ์๋ long์ผ๋ก ์ ์ธ.
๐ป์ฝ๋
import java.io.*;
public class Main {
static int n;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
n = Integer.parseInt(br.readLine());
long[] dp = new long[101];
dp[0] = 0;
dp[1] = 1;
dp[2] = 1;
dp[3] = 1;
dp[4] = 2;
for(int j = 5; j <= n; j++){
dp[j] = dp[j - 1] + dp[j - 5];
}
System.out.println(dp[n]);
}
}
}
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ ์ธํ์ฌ/Java - Lv.2 (0) | 2024.10.21 |
---|---|
[Baekjoon] 1904.01ํ์ผ/Java - Silver3 (0) | 2024.10.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์/Java - Lv.2 (0) | 2024.10.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ค์ฐ์ ์์ํ/Java - Lv.3 (0) | 2024.10.10 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฒ ์คํธ์จ๋ฒ/Java - Lv.3 (0) | 2024.10.07 |