삐까냥의 파도타기
Q11722. 가장 긴 감소하는 부분 수열 본문
현재 값보다 작은 수에게 1을 더하며 나아가는 로직
가장 긴 증가하는 부분 수열과 같은 알고리즘 입니다.
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Q11722 { static int[][] array; public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine());
int num = Integer.parseInt(st.nextToken()); array = new int[2][num+1];
st = new StringTokenizer(br.readLine()); for (int i = 1; i <= num; i++) { array[0][i] = Integer.parseInt(st.nextToken()); }
int max = 0; for (int i = 1; i < num; i++) { int nowNum = array[0][i]; int maxValue = 0; for (int j = i+1; j <= num; j++){ if (nowNum > array[0][j]) { if (maxValue == 0 || maxValue < array[0][j]) { int tempResult = array[1][i] + 1; if (array[1][j] < tempResult) { array[1][j] = tempResult; if (max < tempResult) { max = tempResult; } } } } } }
System.out.println(max + 1); } } |
'코딩 > 백준 알고리즘' 카테고리의 다른 글
Q1890. 점프 (0) | 2019.02.16 |
---|---|
Q1520. 내리막길 (0) | 2019.02.16 |
Q11055. 가장 큰 증가 수열 (0) | 2019.02.14 |
Q11048. 이동하기 (0) | 2019.02.12 |
Q2167. 2차원 배열의 합 (0) | 2019.02.11 |