728x90
가장 긴 증가하는 부분 수열
https://www.acmicpc.net/problem/11053
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Iterator;
import java.util.StringTokenizer;
public class Main {
private static int[] dp;
private static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
dp = new int[Integer.parseInt(br.readLine())];
arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
for(int i=0; i< arr.length; i++){
dp[i]=1;
for(int j=0; j<i; j++){
//만약 arr[i]보다 arr[j]가 작으면서, dp[i]보다 dp[j]가 크다면
if((arr[i] > arr[j]) && (dp[i] <= dp[j])){
dp[i] = dp[j] + 1;
}
}
}
System.out.println(Arrays.stream(dp).max().getAsInt());
}
}
728x90
'Algorithm > 백준' 카테고리의 다른 글
[백준/9251/Java] LCS (0) | 2022.02.24 |
---|---|
[백준/2565/Java] 전깃줄 (0) | 2022.02.23 |
[백준/10844/Java] 쉬운 계단 수 (0) | 2022.02.20 |
[백준/1932/Java] 정수 삼각형 (0) | 2022.02.19 |
[백준/9184/Java] 신나는 함수 실행 (0) | 2022.02.18 |