BJ2491 수열

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);
	}
}

좋은 웹페이지 즐겨찾기