[백준/C++] 2846번 : 오르막길 (브론즈 I)

Eunho Bae·2023년 1월 17일
0

백준

목록 보기
37/40

문제링크


아이디어

가장 큰 오르막길을 구하는 문제이다.
숫자가 주어지면 하나씩 순회하면서 내리막이면 이전 오르막길에서 더했던 숫자를 결과값과 비교하여 더 큰 값으로 교체하는 방식으로 구현했다.
원래는 오르막길이 나오면 이중 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;
}
profile
개인 공부 정리

0개의 댓글