import java.io.*; class Main { static int d[]; public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int size = Integer.parseInt(in.readLine()); d = new int[size]; String[] input = in.readLine().split(" "); int[] sequence = new int[size]; for(int i=0; i
import java.io.*; class Main { static int d[]; public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int size = Integer.parseInt(in.readLine()); d = new int[size]; String[] input = in.readLine().split(" "); int[] sequence = new int[size]; for(int i=0; i
import java.io.*; class Main{ static long[] d; public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int number = Integer.parseInt(in.readLine()); d = new long[number+1]; System.out.println(solve(number)); in.close(); } static long solve(int n) { if(n == 0) return 0; else if(n == 1) return 1; else if(d[n] > 0) return..
import java.io.*; class Main{ static long[] dZero; static long[] dOne; public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringBuffer stringBuffer = new StringBuffer(); int cases = Integer.parseInt(in.readLine()); int[] values = new int[cases]; for(int i=0;i 0) return dZero[n]; dZero[n] = solve0(n-1) + solve0(n-2..
첫 DP 문제. 다이나믹 프로그래밍 (Dynamic Programming) 은 '동적 계획법'이 아니다. 그냥 동적 계획법이란 단어를 잊어버리자. 다이나믹 프로그래밍의 조건 : 부분문제가 본 문제와 겹침, 부분문제의 해가 본 문제의 해가 됨. 같은 연산을 수행할 필요가 없으므로 배열을 만들어서 저장해 줌 : d[N] d[N]에 대한 점화식을 잘 세우는 것이 중요하다. 아직 잘 이해가 안된다... 계속 풀어보자 근데 입력은 BufferedReader로 해주는게 좋긴 한 것 같다 어렵지도 않고.