n이 5000까지이므로 브루트 포스
수열 안에 모든 숫자를 3개씩 확인해본다.
만약 지그재그 수열에 해당한다면 1씩 길이를 늘려주고 max값을 업데이트해준다.
지그재그 수열이 깨지면 다시 최소 지그재그 수열길이인 2부터 시작한다.
#include <stdio.h>
#include <algorithm>
using namespace std;
int arr[5000];
int main(void)
{
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int maxLen = 2, tmp = 2;
for (int i = 0; i < n - 2; i++)
{
if (arr[i] <= arr[i + 1] && arr[i + 1] <= arr[i + 2])
{
tmp = 2;
}
else if (arr[i] >= arr[i + 1] && arr[i + 1] >= arr[i + 2])
{
tmp = 2;
}
else
{
tmp++;
}
maxLen = max(maxLen, tmp);
}
printf("%d\n", maxLen);
return 0;
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 5639] 이진검색트리 (0) | 2020.11.24 |
---|---|
[백준 16945] 매직 스퀘어로 변경하기 (0) | 2020.11.23 |
[백준 2193] 이친수 (0) | 2020.11.14 |
[백준 2293] 동전1 (0) | 2020.11.14 |
[백준 16987] 계란으로 계란치기 (0) | 2020.11.12 |
댓글