<aside> 💛

백준 10844번

</aside>

틀린 코드 ↓

import java.util.Scanner;
public class Practice88 {
	static long mod = 1000000000;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		long D[][] = new long[N + 1][11];
		
		for(int i = 1; i <= 9; i++) {
			D[1][i] = 1;
		}
		for(int i = 2; i <= N; i++) {
			D[i][0] = D[i - 1][1];
			D[i][9] = D[i - 1][8];
			for(int j = 1; j <= 8; j++) {
				D[i][j] = (D[i - 1][j - 1] + D[i - 1][j + 1]) % mod;
			}
		}
		
		long sum = 0;
		for(int i = 0; i < 10; i++) {
			sum = sum + D[N][i];
		}
		System.out.println(sum);
		
		sc.close();
	}

}

돌아가는 코드 ↓

import java.util.Scanner;
public class Practice88 {
	static long mod = 1000000000;
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		long D[][] = new long[N + 1][11];
		
		for(int i = 1; i <= 9; i++) {
			D[1][i] = 1;
		}
		for(int i = 2; i <= N; i++) {
			D[i][0] = D[i - 1][1];
			D[i][9] = D[i - 1][8];
			for(int j = 1; j <= 8; j++) {
				D[i][j] = (D[i - 1][j - 1] + D[i - 1][j + 1]) % mod;
			}
		}
		
		long sum = 0;
		for(int i = 0; i < 10; i++) {
			sum = (sum + D[N][i]) % mod; //이전 코드와 다른 부분
		}
		System.out.println(sum);
		
		sc.close();
	}

}