[백준] PS/Java [실랜디]

[백준 2491] 수열 - JAVA

SH3542 2025. 3. 10. 21:28

https://www.acmicpc.net/problem/2491

 

idx 0부터 크거나 같아지는 / 작거나 같아지는 길이를 갱신

 

idx 1부터 탐색 등은 idx 0부터 탐색의 부분집합 이므로 구할 필요 x

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

class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());
    StringTokenizer st = new StringTokenizer(br.readLine());

    int[] a = new int[N];
    for (int i = 0; i < N; i++) {
      a[i] = Integer.parseInt(st.nextToken());
    }

    int p = 1;
    int pp = a[0];
    int m = 1;
    int mp = a[0];

    int ans = 1;
    for (int i = 1; i < N; i++) {

      int cur = a[i];

      if (cur >= pp) {
        p++;
      } else {
        p = 1;
      }

      pp = cur;
      ans = Math.max(p, ans);

      if (cur <= mp) {
        m++;
      } else {
        m = 1;
      }

      mp = cur;
      ans = Math.max(m, ans);
    }

    System.out.println(ans);
  }
}