Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2491] 수열 본문

Study/Problem Solving

[BOJ_2491] 수열

monitor 2024. 3. 3. 09:35

설명


연속된 부분 수열 중의 연속된 수의 갯수를 구하는 것이니 간단하게 증가하는 부분 수열 감소하는 부분 수열의 경우의 수를 구한다.

코드


package BOJ.Dynamic_Programming;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class BOJ_2491 {
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");

        int N = Integer.parseInt(tk.nextToken());

        int[] arr = new int[N];

        int[] plusDp = new int[N];
        int[] sumDp = new int[N];

        tk = new StringTokenizer(in.readLine()," ");

        for (int i = 0; i < N; i++){
            arr[i] = Integer.parseInt(tk.nextToken());
        }
        int ans = 1;
        plusDp[0] = 1;

        for (int i = 1; i < N; i++){
            if(arr[i - 1] >= arr[i]){
                plusDp[i] = plusDp[i - 1] + 1;
            }else{
                plusDp[i] = 1;
            }
            ans = Math.max(ans,plusDp[i]);
        }
        sumDp[0] = 1;
        for (int i = 1; i < N; i++){
            if(arr[i - 1] <= arr[i]){
                sumDp[i] = sumDp[i - 1] + 1;
            }else{
                sumDp[i] = 1;
            }
            ans = Math.max(ans,sumDp[i]);
        }
        System.out.println(ans);
    }
}

 

 

2491번: 수열

0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_17175] 피보나치는 지겨웡~  (0) 2024.03.06
[BOJ_9461] 파도반 수열  (2) 2024.03.05
[BOJ_15624] 피보나치 수 7  (0) 2024.03.02
[BOJ_10211] Maximum Subarray  (0) 2024.03.01
[BOJ_15489] 파스칼의 삼각형  (0) 2024.02.25