반응형

 

📖 문제

 

📋 코드

import java.util.*;
public class Main {
	
	public static void main(String[] args){
		
		Scanner sc = new Scanner(System.in);
		
		int ans = 0;
		int n = sc.nextInt();
		int arr[] = new int[n];
		int dp[] = new int[n];
		
		for (int i = 0; i < n; i++) {
			arr[i] = sc.nextInt();
		}
		
		
		for (int i = 0; i < n; i++) {
			int max = 0;
			for (int j = 0; j < i; j++) {
				if(arr[j] < arr[i]) {
					max = Math.max(max,dp[j]);
				}
			}
			dp[i] = max+1;
			ans = Math.max(ans,dp[i]);
		}
		System.out.println(ans);
	}
}

👨🏻‍💻 결과

 

 

🔗 링크

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

 

반응형

+ Recent posts