#2491 문제는 간단하게 구현만 하면 되는 문제입니다.
https://www.acmicpc.net/problem/2491
문제를 해결하는 방법은 간단합니다.
이전수와 비교해서 감소하지 않는 값이면, inc값을 1 증가하고 그렇지 않으면 1로 설정을 합니다.
마찬가지로 증가하지 않는 값이면, dec값을 1 증가하고, 그렇지 안으면 1로 설정을 합니다.
이렇게 얻어진 값 중, 최대값을 기록한 후에 그 값을 출력하면 됩니다.
동적 계획법이 알고리즘에 적혀있기는 하지만, 실제로 동적계획법을 이용할 필요는 없습니다.
제가 작성한 소스입니다.
//------------------------------------------------
// baekjoon #2491
// - by Aubrey Choi
// - created at 2019-08-03
//------------------------------------------------
#include <stdio.h>
int main()
{
int n, inc=1, dec=1, si=1, p, s;
scanf("%d%d", &n, &p);
while(--n)
{
scanf("%d", &s);
if(s >= p) inc++; else inc=1;
if(s <= p) dec++; else dec=1;
p=s;
if(inc>si) si=inc;
if(dec>si) si=dec;
}
printf("%d\n", si);
return 0;
}
반응형
'Programming > BOJ' 카테고리의 다른 글
[C/C++] 백준 #2502 떡 먹는 호랑이(구현) (0) | 2023.05.28 |
---|---|
[C/C++] 백준 #2493 탑(스택) (0) | 2023.05.24 |
[C/C++] 백준 #2482 색상환(동적 계획법) (2) | 2023.05.22 |
[C/C++] 백준 #2468 안전 영역(탐욕 알고리즘) (0) | 2023.05.16 |
[C/C++] 백준 #2458 키 순서(플로이드 워샬) (2) | 2023.05.11 |
댓글