삐까냥의 파도타기

Q11722. 가장 긴 감소하는 부분 수열 본문

코딩/백준 알고리즘

Q11722. 가장 긴 감소하는 부분 수열

금손형아 2019. 2. 16. 11:48

현재 값보다 작은 수에게 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