코딩테스트/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