728x90
주어진 값들의 값을 1씩 줄여서 총 몇번이면 증가하는 수열이 되는지 찾는 문제입니다.
맨 뒤부터 탐색합니다.
현재-1의 값이 현재 값보다 크면 증가하는 수열이 아니기 때문에
작아질 때까지 빼면서 카운트를 해줍니다.
작아졌다면 위치를 -1해서 다시 반복합니다.
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int num[110] = { 0, };
int n;
int count = 0;
cin >> n;
for (int i = 1; i <= n; ++i) {
cin >> num[i];
}
for (int j = n; j > 0; --j) {
while (num[j] <= num[j - 1]) {
num[j - 1]--;
count++;
}
}
cout << count << endl;
return 0;
}'알고리즘' 카테고리의 다른 글
| [C++] 백준 1520번 내리막 길 (0) | 2019.06.04 |
|---|---|
| [C++] 백준 1890번 점프 (0) | 2019.05.31 |
| [C++] 백준 1937번 욕심쟁이 판다 (0) | 2019.05.30 |
| [C++] 백준 9251번 LCS (0) | 2019.05.30 |
| [C++] 백준 11722번 가장 긴 감소하는 부분 수열 (0) | 2019.05.30 |