반응형
https://www.acmicpc.net/problem/2846
2846번: 오르막길
문제 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르막길의 크기를 구하려고 한다. 측정한 높이는 길이가 N인 수열로 나타낼 수 있다. 여기서 오르막길은 적어도 2개의 수로 이루어진 높이가 증가하는 부분 수열이다. 오르막길의 크기는 부분 수열의 첫 번째 숫자와 마지막 숫자의 차이이다. 예를 들어, 높이가 다음과 같은
www.acmicpc.net
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <iostream> #include <algorithm> using namespace std; int main() { int n; int p[1001]; int ans = 0; int l = 1, r = 1; cin >> n; for (int i = 1; i <= n; i++) cin >> p[i]; for (int i = 1; i <= n - 1; i++) { if (p[i] < p[i + 1])//오르막길 { r++; ans = max(ans, p[r] - p[l]); } else if(p[i]>=p[i+1])//내리막길 발견 { l = i+1; r = i+1; } } cout << ans << '\n'; } | cs |
'Algorithm' 카테고리의 다른 글
(C++) - 백준(BOJ) 2857번 : FBI (0) | 2020.01.03 |
---|---|
(C++) - 백준(BOJ) 15969번 : 행복 답 (0) | 2020.01.03 |
(C++) - 백준(BOJ) 1373번 : 2진수 8진수 (0) | 2020.01.03 |
(C++) - 백준(BOJ) 9366번 : 삼각형 분류 (0) | 2020.01.01 |
(C++) - 백준(BOJ) 5666번 : 핫도그 (0) | 2020.01.01 |