Programing/백준, 프로그래머스(C++)
[C++][백준 10773] 제로
hye3193
2025. 1. 10. 12:10
https://www.acmicpc.net/problem/10773
제출 코드
#include <iostream>
#include <stack>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int k, num, sum = 0;
stack<int> s;
cin >> k;
while (k--)
{
cin >> num;
if (num == 0)
s.pop();
else
s.push(num);
}
while (!s.empty())
{
sum += s.top();
s.pop();
}
cout << sum;
}
stack을 이용해서 0이 아닌 경우 차례로 정수를 넣고, 0인 경우 pop을 시켜서 가장 최근에 넣은 수를 지우는 방식이다
스택에 수를 다 넣은 뒤에는 스택이 비어있을 때까지 while loop로 sum에 정수들을 더해주었다