BOJ - 10773번_제로 (C++)
BOJ - 10773번_제로
재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 이렇게 모든 수를 받아 적은 후 그 수의 합을 구하는 프로그램 작성하기
풀이
C++ STL stack을 이용한다.
입력받은 정수가 0일 경우 스택의 top 값만큼 빼고 pop 한다. 0이 아닐 경우에는 스택에 push 해주고 그 값을 더한다.
소스코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int k;
cin >> k;
int num, sum=0;
stack<int> st;
while(k--) {
cin >> num;
if(num==0) {
sum -= st.top();
st.pop();
}
else {
st.push(num);
sum += num;
}
}
cout << sum;
}