https://www.acmicpc.net/problem/2491
증가 or 감소 수열의 최대길이를 출력하는 문제다.
증가하는 수열과 감소하는 수열의 최대길이를 각각 구해 더 큰 것을 출력한다.
package day0210;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class ConsecutiveNum {
static BufferedReader br;
static BufferedWriter bw;
static StringTokenizer st;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
int max_count = 1;
int inc_count = 1; // 증가할 경우의 카운트.
int dec_count = 1;
int tmp = Integer.parseInt(st.nextToken()); // 이전 숫자를 기억하는 변수.
for(int i = 0; i < N - 1; i++) {
int cur = Integer.parseInt(st.nextToken());
if(tmp <= cur){
inc_count++;
if(inc_count > max_count) {
max_count = inc_count;
}
}else {
inc_count = 1;
}
if(tmp >= cur) {
dec_count++;
if(dec_count > max_count) {
max_count = dec_count;
}
}else {
dec_count = 1;
}
tmp = cur;
}
System.out.println(max_count);
}
}