백준 10773 제로

CJB_ny·2023년 1월 4일
0

백준

목록 보기
38/104
post-thumbnail

제로

이문제 좋은단어 문제와 똑같은 stack을 사용했던 문제랑 완전히 똑같아서 쉽게 풀었다.

스택에 넣을까말까 하다가 조건에 맞으면 넣고 아니면 pop해버리고

방법은

  • deque
  • stack

두가지 다 가능함.

deque

#include <iostream>
#include <deque>
#include <numeric>
using namespace std;
#define endl "\n"

int n, m;
deque<int> dq;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n;
	for (int i = 0; i < n; ++i)
	{
		cin >> m;
		if (m != 0) dq.push_back(m);
		else if (m == 0 && dq.size() != 0) dq.pop_back();
	}

	cout << accumulate(dq.begin(), dq.end(), 0) << endl;

	return 0;
}

stack

#include <iostream>
#include <stack>
using namespace std;
#define endl "\n"

int n, m;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n;
	stack<int> st;
	for (int i = 0; i < n; ++i)
	{
		cin >> m;
		if (m != 0) st.push(m);
		else if (m == 0 && st.empty() == false) st.pop();
	}

	int sum = 0;
	while (st.empty() == false)
	{
		sum += st.top();
		st.pop();
	}

	cout << sum << endl;

	return 0;
}
profile
https://cjbworld.tistory.com/ <- 이사중

0개의 댓글