Algorithm/스택과 큐

백준 제로(10773) C++ 풀이

khjtoy 2023. 1. 28. 17:15

알고리즘 분류

구현

자료 구조

스택

문제 해결 아이디어

Stack을 이용하여 입력받은 숫자를 넣고 0이 입력되면 pop()하여 가장 최근에 들어온 숫자를 지운다.

이 과정을 다 하면 stack에 남아있는 숫자를 더하면 된다.

코드

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

int main()
{
	int k;
	stack<int> s;

	cin >> k;

	int input;
	for (int i = 0; i < k; i++)
	{
		cin >> input;

		if (input != 0) s.push(input);
		else
		{
			if (!s.empty())
				s.pop();
		}
	}

	int cnt = 0;
	while (!s.empty())
	{
		cnt += s.top();
		s.pop();
	}

	cout << cnt;
}