https://www.acmicpc.net/problem/9095
์ด ๋ฌธ์ ๋ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ์ ์ด์ฉํ์ฌ ํ ์ ์๋ค.
dp 1์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ๊ณ , dp[n] ๋ ์ ์ n์ 1,2,3 ์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๋ฏธํ๋ค.
dp[1] ์ 1๋ก๋ง ๋ํ๋ผ ์ ์์ผ๋ฏ๋ก 1๊ฐ์ง์ด๋ค.
n = 1 ์ผ ๋,
1
ํ ๊ฐ์ง์ด๋ฏ๋ก dp[1] = 1 ์ด๋ค.
n = 2 ์ผ ๋,
1 + 1
2
๋ ๊ฐ์ง์ด๋ฏ๋ก dp[2] = 2 ์ด๋ค.
n = 3 ์ผ ๋,
1 + 1 + 1
2 + 1
1 + 2
3
์ด 4๊ฐ์ง์ด๋ฏ๋ก dp[3] = 4 ์ด๋ค.
n = 4 ์ผ ๋,
1 + 1 + 1 +1
2 + 1 + 1
1 + 2 + 1
3 + 1
1 + 1 + 2
2 + 2
1 + 3
์ด 7๊ฐ์ง์ด๋ฏ๋ก dp[4] = 7 ์ด๋ค.
๊ทธ๋ฐ๋ฐ n = 4 ์ธ ๊ฒฝ์ฐ์ ์์์ ์๋์ ๋นจ๊ฐ์ ๋ถ๋ถ์ ์ฐ์ฐ์ dp[3]์ ํฌํจ๋ ๊ฒฝ์ฐ์ ์์ ๊ฐ๋ค.
1 + 1 + 1 +1
2 + 1 + 1
1 + 2 + 1
3 + 1
์๋์ ํ๋์ ๋ถ๋ถ์ ์ฐ์ฐ ์ญ์ dp[2]์ ํฌํจ๋ ๊ฒฝ์ฐ์ ์์ ๋์ผํ๋ค.
1 + 1 + 2
2 + 2
์๋์ ์ด๋ก์ ๋ถ๋ถ์ ์ฐ์ฐ์ dp[1]์ ํฌํจ๋ ๊ฒฝ์ฐ์ ์์ด๋ค.
1 + 3
์ฆ, dp[4] ๋ ๊ฒฐ๊ตญ dp[3] + dp[2] + dp[1]์ ๋ํ ๊ฒ๊ณผ ๊ฐ๋ค.์ฌ๊ธฐ์ ์ป์ ์ ์๋ ์ ํ์์ dp[n] = dp[n-1] + dp[n-2] + dp[n-1] ์ด ๋๋ค.์ ํ์์ ์ป์์ผ๋ ์ด๋ฅผ ์ด์ฉํ์ฌ dp์ ๊ฐ๋ค์ ๊ตฌํ ์ ์๋ค.
import java.util.*;
import java.math.*;
public class Main {
static int dp[] = new int [11];
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int t = kb.nextInt();
dp[1]=1; //์ด๊ธฐ ๊ฐ ์ด๊ธฐํ
dp[2]=2;
dp[3]=4;
for(int j=4;j<=10;j++) { // 4๋ถํฐ ๋ฐ๋ณต
dp[j] = dp[j-3] + dp[j-2] + dp[j-1]; // ์ ํ์
}
for(int i=0;i<t;i++) {
int n = kb.nextInt();
System.out.println(dp[n]);
}
}
}
'๐ ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ (*์ฝ์) (0) | 2023.03.08 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ๋ช ์์ ์ ๋น(1) ( *์ฐ์ ์์ ํ ) (0) | 2023.03.06 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ์คํจ์จ (0) | 2023.03.04 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ๊ณผ์ผ ์ฅ์ (0) | 2023.03.01 |
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 1 : ์ฒด์ก๋ณต (0) | 2023.02.24 |