문제 - https://www.acmicpc.net/problem/10844
10844번: 쉬운 계단 수
첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static int N;
static long[][] nums;
static long cnt = 0;
public static void main(String[] args) throws Exception {
N = Integer.parseInt(br.readLine());
nums = new long[N][10];
for (int i = 1; i <= 9; i++) nums[0][i] = 1; // init
for (int row = 1; row < N; row++) {
nums[row][0] = nums[row-1][1];
for (int i = 1; i <= 8; i++)
nums[row][i] = (nums[row-1][i-1] + nums[row-1][i+1]) % 1000000000;
nums[row][9] = nums[row-1][8];
}
for (long i : nums[N-1])
cnt += i;
bw.write(cnt%1000000000+"\n");
bw.flush();
bw.close();
br.close();
}
}
간단한 DP문제였지만, 자료형을 신경못써서 '맞는데 왜 틀렸지' 한참을 고민했다..
20억 미만이더라도 그냥 뭔가 좀 수상하다 싶으면 Long타입 쓰자!
'공부 > algorithm' 카테고리의 다른 글
BOJ 최종 순위(3665) - Java (0) | 2021.11.16 |
---|---|
BOJ 회의실 배정(1931) - Java (0) | 2021.10.25 |
BOJ 내리막 길(1520) - Java (0) | 2021.10.20 |
BOJ RGB거리(1149) - Java (0) | 2021.10.20 |
BOJ 후보 추천하기(1713) - Java (0) | 2021.10.14 |