본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

백준알고리즘


https://www.acmicpc.net/problem/10844


생각보다 어려웠다. 소스는 첨부하나 설명은 적지 못하겠다. 그림그려야되니깐

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int value = Integer.parseInt(scan.nextLine().trim()); long memoArray[][] = new long[value][10]; memoArray[0][0] = 0; memoArray[0][1] = 1; memoArray[0][2] = 1; memoArray[0][3] = 1; memoArray[0][4] = 1; memoArray[0][5] = 1; memoArray[0][6] = 1; memoArray[0][7] = 1; memoArray[0][8] = 1; memoArray[0][9] = 1; long result[] = new long[value]; result[0] = 9; for(int i=1;i<value; i++) { long total = 0; for(int j=0; j<10; j++) { if(j==0) { memoArray[i][j] = memoArray[i-1][j+1] % 1000000000; total += memoArray[i][j]; continue; } if(j > 0 && j < 9) { memoArray[i][j] = (memoArray[i-1][j-1] + memoArray[i-1][j+1]) % 1000000000; total += memoArray[i][j]; continue; } if(j==9) { memoArray[i][j] = memoArray[i-1][j-1] % 1000000000; total += memoArray[i][j]; continue; } } result[i] = total; } System.out.println(result[value -1] % 1000000000); } }