본문 바로가기
개발 관련 공부/알고리즘

백준 11053

by 슴새 2021. 7. 21.
반응형

import java.util.Scanner;
 
public class Main{
    static public void main(String args[]){
    	Scanner sc = new Scanner(System.in);
    	int n = sc.nextInt();
        //코드....
        int arr []=new int [n];
        for(int i=0;i<n;i++)
            arr[i]=sc.nextInt();
        int dp []= new int [n];
        int ans=1;
        for(int i=0;i<n;i++){
            dp[i]=1;
            for(int j=0;j<i;j++){ 
                if(arr[i]>arr[j])  {
                    //이미 dp[i]가 새로운 값보다 크다면 갱신할 필요 없음
                   dp[i] = Math.max(dp[i], dp[j]+1);
                    /* 이코드랑 max 쓰는거랑 똑같음
                     int temp=dp[j]+1;
                     if(temp>dp[i])
                        dp[i]=temp;
                    */
                }
                //dp[n-1]이 답인게 아니라, dp 배열 중 가장 큰 값이 답이므로,
                //dp[i]를 구할때마다 기존 최댓값과 비교해서 ans를 갱신!
                ans=Math.max(ans,dp[i]);
                
              
                    
            }
        }
        System.out.println(ans);
	}
     
 }

 

반응형

'개발 관련 공부 > 알고리즘' 카테고리의 다른 글

백준 2751  (0) 2021.07.28
백준 1912  (0) 2021.07.26
백준 11054  (0) 2021.07.22
백준 11057  (0) 2021.07.20
백준 11726번  (0) 2021.07.19

댓글