코딩테스트/Java

[JAVA] 백준 가장 긴 증가하는 수열

SK_MOUSE 2022. 1. 10. 19:02
반응형

업데이트 과정

 

import java.io.*;
import java.util.*;

public class Main {
    static int[] memo, arr;
    static int n;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());
        arr = new int[n];
        memo = new int[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
        }

        memo[0] = 1;
        for (int i = 1; i < n; i++) {
            memo[i]= 1;
            for (int j = 0; j < i; j++) {
                if(arr[i] < arr[j] && memo[j]+1 > memo[i]){
                    memo[i]=memo[j]+1;
                }
            }
            System.out.println("memo = " + Arrays.toString(memo));
        }
        
        OptionalInt ans = Arrays.stream(memo).max();
        System.out.println(ans.getAsInt());
    }
}

 

java 8의 사용법을 익혀야겠다.

 

Optional에 관한 포스팅을 하겠다.

간단 참고

@Test
public void 숫자_array_max_값_찾기() {
        int[] intArr = {3, 2, 6, 10, 234};
        Integer maxValue = Arrays.stream(intArr)
                .max()
                .getAsInt();
        assertThat(maxValue).isEqualTo(234);
}
@Test
public void array_str에서_가장_긴_string의_길이_찾기() {
        String[] lines = {"Hello", "My", "World11"};
        int maxWidth = Arrays.stream(lines).mapToInt(String::length).max().getAsInt();
        assertThat(maxWidth).isEqualTo(7);
}

참고링크

반응형

'코딩테스트 > Java' 카테고리의 다른 글

[JAVA] 백준 감소하는 수  (0) 2022.02.06
[JAVA] 백준 과자 나눠주기  (0) 2022.02.02
[JAVA] 백준 구간 합 구하기 5  (0) 2021.12.21
[JAVA] 백준 돌다리  (0) 2021.12.21
[JAVA] 백준 양  (0) 2021.12.14