๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€์ˆ˜์—ด ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€์ˆ˜์—ด

์š”์ผ์ด 2022. 7. 6. 23:58
๋ฐ˜์‘ํ˜•

์„ค๋ช…

N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ๊ธธ๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”(์ž‘์€ ์ˆ˜์—์„œ ํฐ ์ˆ˜๋กœ) ์›์†Œ๋“ค์˜ ์ง‘ํ•ฉ์„ ์ฐพ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.

์˜ˆ๋ฅผ ๋“ค์–ด, ์›์†Œ๊ฐ€ 2, 7, 5, 8, 6, 4, 7, 12, 3 ์ด๋ฉด ๊ฐ€์žฅ ๊ธธ๊ฒŒ ์ฆ๊ฐ€ํ•˜๋„๋ก ์›์†Œ๋“ค์„ ์ฐจ๋ก€๋Œ€๋กœ ๋ฝ‘์•„๋‚ด๋ฉด 2, 5, 6, 7, 12๋ฅผ ๋ฝ‘์•„๋‚ด์–ด

๊ธธ์ด๊ฐ€ 5์ธ ์ตœ๋Œ€ ๋ถ€๋ถ„ ์ฆ๊ฐ€์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์€ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ˆ˜ N(3≤N≤1,000, ์ž์—ฐ์ˆ˜)๋ฅผ ์˜๋ฏธํ•˜๊ณ ,

๋‘˜์งธ ์ค„์€ N๊ฐœ์˜ ์ž…๋ ฅ๋ฐ์ดํ„ฐ๋“ค์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ๋ถ€๋ถ„์ฆ๊ฐ€์ˆ˜์—ด์˜ ์ตœ๋Œ€ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์‹œ ์ž…๋ ฅ 1 

8
5 3 7 8 6 2 9 4

์˜ˆ์‹œ์ถœ๋ ฅ

4

 

import java.util.*;

public class Main {

    public int solution(int[] array){

        int result = 1;

        int[] dy = new int[array.length];

        dy[0] = 1;

        for(int i=1; i<array.length; i++){
            int max = 0;
            for(int j=i-1; j>=0; j--){
                if(array[j] < array[i] && dy[j] > max){
                    max = dy[j];
                }
            }
            dy[i] = max + 1;
            result = Math.max(result, dy[i]);
        }



        return result;
    }


    public static void main(String[] args) {

        Main main = new Main();

        Scanner in = new Scanner(System.in);

        int n = in.nextInt();
        int[] array = new int[n];
        for(int i=0; i<n; i++){
            array[i] = in.nextInt();
        }

        System.out.println( main.solution(array));
    }
}
Comments