본문 바로가기

개발/백준

[백준] 2847번. 게임을 만든 동준이 (C++)

문제

https://www.acmicpc.net/problem/2847

 

풀이

stack으로 가장 최근에 입력받은 순으로 확인하면 되는

아주아주 간단한 문제

 

#include <iostream>
#include <stack>
using namespace std;

int main()
{
	//INPUT
	int N;
	cin >> N;

	stack<int>s;
	for (int i = 0; i < N; i++)
	{
		int num; cin >> num;
		s.push(num);
	}

	//CALCULATE
	int answer = 0;
	int score = s.top();
	s.pop();

	while (!s.empty())
	{
		int now = s.top();
		s.pop();
		
		if (now >= score) 
		{
			answer += now - score + 1; 
			now = score - 1;
		}
		score = now;
	}

	cout<<answer;
}