https://www.acmicpc.net/problem/11053
코드 :
1. dp - 탑다운
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int[] seq;
static Integer[] memo;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
int N = Integer.parseInt(br.readLine());
seq = new int[N];
memo = new Integer[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
seq[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < N; i++) {
dp(i);
}
int max = memo[0];
for (int i = 1; i < N; i++) {
max = Math.max(max, memo[i]);
}
System.out.println(max);
}
public static int dp(int N){
if (memo[N] == null) {
memo[N] = 1;
for (int i = N-1; i >= 0; i--) {
if(seq[i] < seq[N]){
memo[N] = Math.max(memo[N], dp(i)+1);
}
}
}
return memo[N];
}
}
2. dp - 바텀업
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
int N = Integer.parseInt(br.readLine());
int[] memo = new int[N];
int[] seq = new int[N];
int max = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
seq[i] = Integer.parseInt(st.nextToken());
}
for (int i = 0; i < N; i++) {
memo[i] = 1;
for (int j = 0; j < i; j++) {
if (seq[j] < seq[i] && memo[j] + 1 > memo[i]) {
memo[i] = memo[j] + 1;
}
}
}
for (int i = 0; i < N; i++) {
max = Math.max(memo[i], max);
}
System.out.println(max);
}
}
LIS를 처음 풀어봤는데, 열심히 헤맸다.
참고 :
https://st-lab.tistory.com/137 오늘도 이분의 힘을 빌렸다. LIS를 처음 풀어봤는데, 열심히 헤맸다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 1912번 - 연속합 (Java 8) (0) | 2022.03.27 |
---|---|
백준 14002번 - 가장 긴 증가하는 부분 수열 4 (Java 8) (0) | 2022.03.27 |
백준 2193번 - 이친수 (Java 8) (0) | 2022.03.25 |
백준 10844번 - 쉬운 계단 수 (Java 8) (0) | 2022.03.25 |
백준 15990번 - 1, 2, 3 더하기 5 (Java 8) (0) | 2022.03.24 |
댓글