if 인접한 바로 앞의 단계가 바로 뒤의 단계보다 크거나 같다면
그 앞의 단계에서 그 뒤 단계를 뺀 수 -1 만큼의 수만큼은 빼줘야 앞의 단계 점수가 뒤 단계 점수보다 낮다
이걸 뒤에서부터 하나씩 반복해서 앞까지 진행해주면 되는 그리디 문제였다
https://www.acmicpc.net/problem/2847
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,p;
int arp[104]={0,};
int cnt=0;
int dif=0;
cin >> n;
for(int i=0; i<n; i++){
cin >> p;
arp[i]=p;
}
for(int i=n-2; i>=0; i--){
if(arp[i]>=arp[i+1]){
dif=arp[i]-arp[i+1]+1;
cnt+=dif;
arp[i]-=dif;
dif=0;
}
}
cout << cnt << "\n";
return 0;
}
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 1439/c++] 뒤집기 (0) | 2022.07.11 |
---|---|
[백준 14425/c++] 문자열 집합 (0) | 2022.07.10 |
[백준 1302/c++] 베스트셀러 (0) | 2022.07.08 |
[백준 10799/c++] 쇠막대기 (0) | 2022.07.07 |
[백준 10845/c++] 큐 (0) | 2022.07.07 |
댓글