https://www.acmicpc.net/problem/2491
문제풀이
하나씩 뺴먹어 버려서 틀리는 경우가 생긴다.. 초기 answer값을 1로 두고, 반복문 마지막 마다 정답 값을 갱신하도록 해주었다.
처음 값만 따로 입력받아 before에 저장한뒤, 감소 증가 길이를 저장할 변수를 선언하고 반복문을 돌며 단조증가, 단조감소에 따라 갈이를 늘려주거나 다시 1로만들어주면 간단하게 구현이 가능하다.
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int before;
cin >> before;
int bigger_len = 1, smaller_len = 1;
int answer = 1;
for(int i=1; i<n; i++) {
int tmp;
cin >> tmp;
// 단조 감소
if(before >= tmp) smaller_len++;
else smaller_len = 1;
// 단조증가
if(before <= tmp) bigger_len++;
else bigger_len = 1;
answer = max(bigger_len, answer);
answer = max(smaller_len, answer);
before = tmp;
}
cout << answer;
return 0;
}
'알고리즘(Algorithm)' 카테고리의 다른 글
[C++] 상담원 인원 (프로그래머스 LEVEL 3) (1) | 2023.10.21 |
---|---|
[C++] 문제집 (1766번) 위상 정렬 (0) | 2023.10.19 |
[C++] 게리맨더링2 (17779번) (1) | 2023.10.14 |
[C++] 낚시왕 (17143번) (1) | 2023.10.14 |
[C++] 나무 재테크 (16235번) (0) | 2023.10.13 |