if 인접한 바로 앞의 단계가 바로 뒤의 단계보다 크거나 같다면
그 앞의 단계에서 그 뒤 단계를 뺀 수 -1 만큼의 수만큼은 빼줘야 앞의 단계 점수가 뒤 단계 점수보다 낮다
이걸 뒤에서부터 하나씩 반복해서 앞까지 진행해주면 되는 그리디 문제였다
https://www.acmicpc.net/problem/2847
2847번: 게임을 만든 동준이
학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어
www.acmicpc.net
#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 |
댓글