ν¨ν΄μ μ°ΎκΈ° μν΄ κ²½μ°μ μλ₯Ό μ΄ν΄λ³΄μ.
0μΌλ‘ μμνλ κ²λ νμ©νκ³ , 00 μ΄λ 11 κ³Ό κ°μ΄ κ°μ μ«μκ° μ°μλ κ²½μ°μλ μ€λ¦μ°¨μμΌλ‘ κ°μ£Όνλ―λ‘
μμ κ°μ κ²½μ°μ μκ° μμ μ μλ€.
μ΄λ κ² μμ μΉ νλ©΄ ν¨ν΄μ΄ λ³΄μΌ κ²μ΄λ€.
μ¦ Nμ리 iλ‘ μμνλ μ€λ₯΄λ§ μλ N-1μ리 iλ‘ μμνλ μ€λ₯΄λ§μλΆν° N-1μ리 9λ‘ μμνλ μ€λ₯΄λ§μλ₯Ό λνλ©΄ λλ€.
Dp[i][j] = Dp[i-1][j] + ····· Dp[i-1][9]
μ μμ νννλ©΄ λλλ°, λλ forλ¬Έμ 3κ° μ¬μ©νμ¬ νννμλ€.
for (int i = 2; i <= N; i++) {
for (int j = 0; j <= 9; j++) {
for(int k=j;k<=9;k++) {
Dp[i][j]+=Dp[i-1][k]%mod;
}
}
}
iκ° 2μΌλλ₯Ό μ΄ν΄λ³΄λ©΄,
j=0μΌ λ,
kλ 0λΆν° 9κΉμ§ μ§ννλ€.
μ¦, Dp[2][0] = Dp[1][0]+ Dp[1][1] +····· + Dp[1][9] κ° λλ€.
j=1 μΌ λ,
kλ 1λΆν° 9κΉμ§ μ§ννλ―λ‘,
μ¦, Dp[2][1] = Dp[1][1] + ····· + Dp[1][9] κ° λλ€.
κ²°κ³Όλ μλμ κ°λ€.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int N = scanner.nextInt();
int [][] Dp = new int[N+1][10];
int mod = 10007;
for(int i=0;i<=9;i++) {
Dp[1][i]=1;
}
for (int i = 2; i <= N; i++) {
for (int j = 0; j <= 9; j++) {
for(int k=j;k<=9;k++) {
Dp[i][j]+=Dp[i-1][k]%mod; // μ€λ₯΄λ§ μ κ²½μ°μ μ ꡬνλ μ
}
}
}
int sum=0;
for(int i=0;i<=9;i++) {
sum+=Dp[N][i];
sum%=mod;
}
System.out.println(sum);
}
}