https://www.acmicpc.net/problem/14659
<요약>
한조 서열 정리ㅋㅋㅋ 문제 이름도 참 기엽다
n개의 봉우리를 입력 받고 왼쪽에서 오른쪽으로 이동하면서 입력 받은 봉우리보다 작은 봉우리는 몇 개 있는지 확인하는 문제! 여기서의 조건은 처음 출발한 봉우리보다 큰 봉우리를 만나면 용이 지나갈 수 없어서 그 상태로 끝나는 거고, 그리고 그 용이 넘어갈 수 있는 출발지보다 작은 봉우리는 몇 개인지 최댓값을 찾는 문제이다!
n개의 봉우리를 입력 받을 arr 배열과 처음 시작하는 봉우리를 저장할 height변수, 처음 봉우리보다 작은 봉우리를 셀 cnt변수, cnt값과 비교해서 최댓값을 저장할 result변수 선언
조건문을 통해 처음 봉우리보다 작거나 같은 봉우리가 몇 개 있는지 카운트 하고, 처음 봉우리보다 큰 봉우리를 만나면 카운트 값과 result값을 비교하여 최댓값을 다시 result에 저장
result = max(result, cnt);
// 두 값 중 최댓값을 반환, 데이터 타입이 같아야 함
#include <iostream>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, height=0,result=0, cnt=0;
cin >> n;
int arr[30001] = { 0 };
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
height = arr[0];
for (int i = 1; i < n; i++) {
if (height >=arr[i]) {
cnt++;
}
else {
result = max(result, cnt);
height = arr[i];
cnt = 0;
}
}
cout << max(result, cnt);
return 0;
}