가장 큰 오르막길을 구하는 문제이다.
숫자가 주어지면 하나씩 순회하면서 내리막이면 이전 오르막길에서 더했던 숫자를 결과값과 비교하여 더 큰 값으로 교체하는 방식으로 구현했다.
원래는 오르막길이 나오면 이중 for문으로 구현해서 하려고 했다가 구현 난이도와 코드가 길어진다고 판단하여 그냥 단순하게 생각해서 구현했다.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n, t;
vector<int> v, r;
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> t;
v.push_back(t);
}
int result = 0;
int temp = 0;
for (int i=0; i < n-1; i++)
{
if (v[i] < v[i + 1])
temp += v[i + 1] - v[i];
else
{
result = max(result, temp);
temp = 0;
}
}
result = max(result, temp);
cout << result;
return 0;
}