티스토리 뷰

 

 

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

 

2491번: 수열

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

www.acmicpc.net

 

increment[i] 는 arr[i] 로 끝나는 수열 중 가장 긴 증가하는 구간의 길이
decrement[i] 는 arr[i] 로 끝나는 수열 중 가장 긴 감소하는 구간의 길이

초기값
increment[n]=1;
decrement[n]=1;

 

 

const [[N], [...arr]] = require('fs')
	.readFileSync('./dev/stdin')
	.toString()
	.split('\n')
	.map((v) => v.split(' ').map(Number));
let increment = Array(N).fill(1);
let decrement = Array(N).fill(1);

for (let i = 0; i < N; i++) {
	if (arr[i + 1] >= arr[i]) {
		increment[i + 1] += increment[i];
	}
	if (arr[i + 1] <= arr[i]) {
		decrement[i + 1] += decrement[i];
	}
}

console.log(Math.max(...increment, ...decrement));
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함