https://www.acmicpc.net/problem/1965
import java.util.Scanner;
public class Main {
public static void main(String[] args ) {
// LIS
Scanner s= new Scanner(System.in);
int N = s.nextInt();
int size[] = new int[N+2];
int dp[] = new int[N+2];
int max=0;
for(int i=1;i<=N;i++) {
size[i]=s.nextInt();
dp[i] = 1;
}
dp[1]=1;
for(int i=1;i<=N;i++) {
for (int j = 1; j <= i; j++) {
if (size[j] < size[i]) dp[i] = Math.max(dp[i], dp[j] + 1);
}
max = Math.max(max, dp[i]);
}
System.out.println(max);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 백준 1520번 내리막 길 (0) | 2020.06.03 |
---|---|
[Java] 백준 1010번 다리 놓기 (0) | 2020.06.03 |
[Java] 백준 1049번 기타줄 (0) | 2020.06.01 |
[Java] 백준 11724번 연결 요소의 개수 (0) | 2020.05.22 |
[Java] 백준 1026번 보물 (0) | 2020.05.20 |
댓글