basic-algo-lecture/workbook/0x11.md at master · encrypted-def/basic-algo-lecture
basic-algo-lecture/workbook/0x11.md at master · encrypted-def/basic-algo-lecture
바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.
github.com
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
vector<int> levels(n);
for (int i = 0; i < n; i++)
cin >> levels[i];
int cnt = 0;
int last = levels[n - 1];
for (int j = n - 2; j >= 0; j--) {
int tmp = levels[j] - last + 1;
if (tmp > 0) {
cnt += tmp;
levels[j] = last - 1;
}
last = levels[j];
}
cout << cnt;
return 0;
}
그냥 last 변수 만들어놓고 for 로 뒤부터 돌면서 cnt 에 차이 만큼 값을 더해주면 된다.