https://www.acmicpc.net/problem/11053
11053번: 가장 긴 증가하는 부분 수열
수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] num = new int[n+1];
int[] memo = new int[n+1];
for(int i=1; i<=n; i++) {
num[i] = Integer.parseInt(st.nextToken());
}
int max = -1;
for(int i=1; i<=n; i++) {
for(int j=1; j<i; j++) {
if(num[j]<num[i]) {
memo[i] = Math.max(memo[j]+1,memo[i]);
}
}
if(memo[i]==0) memo[i] = memo[0]+1;
if(max<memo[i]) {
max = memo[i];
}
}
bw.write(max+"");
bw.close();
}
}
'백준' 카테고리의 다른 글
백준 동적 계획법 - 2565번 : 전깃줄 (0) | 2022.03.06 |
---|---|
백준 동적계획법 - 11054번 : 가장 긴 바이토닉 부분 수열 (0) | 2022.03.05 |
백준 동적 계획법 - 2156번 : 포도주 시식 (0) | 2022.03.04 |
백준 동적계획법 - 10844번 : 쉬운 계단 수 (1) | 2022.03.03 |
백준 브루트포스 - 18111번 : 마인크래프트 (1) | 2022.03.03 |