새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 오르막길 (2846번)

  • -
https://www.acmicpc.net/problem/2846
 

2846번: 오르막길

상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르

www.acmicpc.net

🔔 문제 : 

N(1<= N <= 1000) 인 N 크기의 수열이 주어집니다. 이는 양의 정수 P(1 <= P <= 1000) 가 쓰여져 있습니다.

 

오르막길의 가장 큰 길이를 출력하는 문제입니다.

 

입력값)

9

12 3 5 7 10 10 6 1 11

 

출력값)

10이 가장 큰 차이를 보이는 길이로 출력됩니다.

 


🔔 Kick Point :

저는 의식의 흐름대로 거리를 계산하는 tmp와,  그것을 담는 거리 diff를 두어서 MAX 값이 갱신될때마다 저장해주어서

출력해주었습니다.

 

 

begin = 맨 처음 시작하는 숫자

diff = 오르막길일때 인접하는 숫자의 차이값

tmp = 다음 숫자 값


🔔 Code :

#include <iostream>
using namespace std;

int main() {
	int n, MAX =0 , begin =0;
	
	
	cin >> n >> begin;
	int diff = 0; n--;
	while (n--) {
		int tmp; cin >> tmp;
		if (tmp > begin) {
			diff += (tmp - begin);
		}
		else {
			MAX = MAX < diff ? diff : MAX;
			diff = 0;
		}
		
		begin = tmp;
	}

	MAX = MAX < diff ? diff : MAX;
	cout << MAX;
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.