https://www.acmicpc.net/problem/1904
ํด๋น ๋ฌธ์ ๋ N์ด ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์์ฑ๋๋ ๊ฒฐ๊ณผ์ ๋ํ ์ ํ์์ ๋์ถํ์ฌ ํ์ด์ผํ๋ ๋ฌธ์ ์ด๋ค.
๋ฌธ์ ์ ๊ท์น์ ๋ค์๊ณผ ๊ฐ๋ค. N๋ฒ์งธ ์์ฑ๋๋ ์์ด์ N-1๊ฐ๋ก ์์ฑ๋๋ ์์ด์ 1์ ๋ถ์ธ ๊ฒฝ์ฐ์ ์์ N-2๊ฐ๋ก ์์ฑํ ์์ด์ 00ํ์ผ์ ๋ถ์ด๋ ๊ฒฝ์ฐ์ ์๊ฐ ๋๋ค.
์ฆ, ๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ด๋ฅผ ์ด์ฉํด ํผ๋ณด๋์น ๋ฌธ์ ์ ๊ฐ์ด Dynamic Programming์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ณด์๋ค.
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n+1];
arr[1] = 1;
if (n >= 2) arr[2] = 2;
if (n >= 3) {
for (int i=3; i<=n; i++) {
arr[i] = (arr[i-1] + arr[i-2]) % 15746;
}
}
System.out.println(arr[n]);
}
}