끄적끄적 코딩
article thumbnail
Published 2019. 9. 24. 21:50
[C++] 백준 2846번 오르막길 알고리즘

오르막길 내리막길 평지로 이루어졌을 때
오르막길이 가장 큰 경우의 값을 출력하는 문제입니다.

현재수가 이전수보다 크면 값을 더해주는 방식으로
오르막길의 높이를 구했습니다.

 

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

int main(int argc, char * argv[])
{
	int n;
	int sum = 0;
	int result = 0;
	int arr[1010];

	memset(arr, 0, sizeof(arr));
	
	cin >> n;

	cin >> arr[0];
	for (int i = 1; i < n; ++i) {
		cin >> arr[i];
		if (arr[i] > arr[i - 1]) {
			sum += arr[i] - arr[i - 1];
		}
		else {
			result = max(result, sum);
			sum = 0;
		}
	}
	result = max(result, sum);

	cout << result << endl;

	return 0;
}

검색 태그