CH10 dynamic programming(동적계획법)
Last updated
Last updated
package dynamic.main1;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] dy = new int[n + 1];
dy[1] = 1;
dy[2] = 2;
for (int i = 3; i <= n; i++) {
dy[i] = dy[i - 2] + dy[i - 1];
}
System.out.println(dy[n]);
}
}
package dynamic.main2;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] dy = new int[n + 2];
dy[1] = 1;
dy[2] = 2;
for (int i = 3; i <= n + 1; i++) {
dy[i] = dy[i - 2] + dy[i - 1];
}
System.out.println(dy[n + 1]);
}
}
package dynamic.main3;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextInt();
}
int[] dy = new int[n];
int answer = 0;
dy[0] = 1;
for (int i = 1; i < n; i++) {
int max = 0;
for (int j = i - 1; j >= 0; j--) {
if (arr[j] < arr[i] && dy[j] > max) {
max = dy[j];
}
}
dy[i] = max + 1;
answer = Math.max(answer, dy[i]);
}
System.out.println(answer);
}
}